在妥善處理CSV前導零有問題,已經嘗試過的字符串值之前,但在CSV文件時,它顯示'StringValue
C#的WriteLine正確顯示前導零保存爲CSV
已經嘗試過\t
加入'
它的作品,但當我嘗試用記事本打開它顯示一個選項卡。
有沒有其他方法可以解決這個問題?我的主要目的是當它通過csv文件打開時,'
一定不能顯示,當我用文本編輯器打開它時,它不會顯示。
這是我當前的代碼
foreach (var i in TransmittedDataBLL.Instance.GetDepEdTextFile(data))
{
writer.WriteLine(
"'" + i.Region.ToString() + ",'" + i.Division.ToString() + ",'" + i.Station.ToString() + ",'" + i.EmployeeNumber.ToString()
+ "," + i.FirstName.ToString() + "," + i.MiddleInitial.ToString() + "," + i.LastName.ToString() + "," + i.Appelation.ToString()
+ ",'" + i.DednCode.ToString() + "," + i.DednSubCode.ToString() + ",'" + i.EffectDate.ToString() + ",'" + i.TermDate.ToString()
+ ",'" + i.AmountStr.ToString() + ",'" + i.LoanAmountStr.ToString() + ",'" + i.InterestAmountStr.ToString() + ",'" + i.OtherChargesStr.ToString()
+ "," + i.BillingType.ToString() + "," + i.UpdateCode.ToString()
);
}
更新的代碼:
writer.WriteLine("'{0}','{1}','{2}','{3}'", i.Region.ToString(), i.Division.ToString(), i.Station.ToString(), i.EmployeeNumber.ToString());
更新的代碼:同樣的問題,前導零不顯示從我的查詢
writer.WriteLine("\"{0}\",\"{1}\",\"{2}\",\"{3}\"", i.Region.ToString(), i.Division.ToString(), i.Station.ToString(), i.EmployeeNumber.ToString());
該數據
全碼:
private void CreateTextFile(string regioncode, string branchcode)
{
string sFileName = Path.GetRandomFileName();
string fileName = DateTime.Now.ToString("mmddyyyy") + ".csv";
string Serverpath=ConfigurationManager.AppSettings["UploadPath"].ToString() + "\\DepEdReports\\";
TransmittedData data = new TransmittedData();
data.Region = regioncode.Trim();
data.BranchCode = branchcode.Trim();
if (!Directory.Exists(Serverpath))
Directory.CreateDirectory(Serverpath);
using (StreamWriter writer = new StreamWriter(Serverpath + sFileName + ".csv"))//Server.MapPath("TextFiles/" + sFileName + ".txt")))
{
foreach (var i in TransmittedDataBLL.Instance.GetDepEdTextFile(data))
{
//writer.WriteLine(
// i.Region + "," + i.Division + "," + i.Station + "," + i.EmployeeNumber
// + "," + i.FirstName + "," + i.MiddleInitial + "," + i.LastName + "," + i.Appelation
// + "," + i.DednCode + "," + i.DednSubCode + "," + i.EffectDate + "," + i.TermDate
// + "," + i.AmountStr + "," + i.LoanAmountStr + "," + i.InterestAmountStr + "," + i.OtherChargesStr
// + "," + i.BillingType + "," + i.UpdateCode
// );
//writer.WriteLine(string.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\"", i.Region, i.Division, i.Station, i.EmployeeNumber));
writer.WriteLine(GetCSV(i));
}
}
FileStream fs = null;
//fs = File.Open(Server.MapPath("TextFiles/" + sFileName + ".txt"), FileMode.Open);
fs = File.Open(Serverpath + sFileName + ".csv", FileMode.Open);
byte[] fbyte = new byte[fs.Length];
fs.Read(fbyte, 0, Convert.ToInt32(fs.Length));
fs.Close();
Response.AddHeader("Content-disposition", "attachment;filename=" + fileName);
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(fbyte);
Response.End();
}
private string GetCSV(TransmittedData i)
{
string[] list = new string[]
{
i.Region.ToString(),
i.Division.ToString(),
i.Station.ToString(),
i.EmployeeNumber.ToString(),
i.FirstName,
i.MiddleInitial,
i.LastName,
i.Appelation.ToString(),
i.DednCode.ToString(),
i.DednSubCode.ToString(),
i.EffectDate.ToString(),
i.TermDate.ToString(),
i.AmountStr,
i.LoanAmountStr,
i.InterestAmountStr,
i.OtherChargesStr,
i.BillingType.ToString(),
i.UpdateCode.ToString()
};
string csvLine = "\"" + string.Join(@"", "", list) + "\"";
return csvLine;
}
值是你寫作,他們是整數類型,你試圖寫? –
@SimonPrice,no。他們都是字符串 – Angelo11292
只是出於好奇,你的數字怎麼是字符串類型,而不是int? –