将管道分隔的文本文件转换为.CSV excel文件时,行会搞乱

我编写了这个函数,它将所有管道转换为逗号,然后将其转换为excel .CSV文件。

但是,之后我意识到某些行存在一些问题。

例如姓名[Chua Wei Loon](据说是在一栏中),最后“Chua Wei”在一栏中,“Loon”在下一栏。

我查看了文本文件,发现名称之间没有管道,我找不到解决方案。

下面是我的函数代码:

protected void SaveAsExcelBtn_Click(object sender, EventArgs e) { //string strExcelOutputFilename = "C:/Documents and Settings/rhlim/My Documents/" + DateTime.Now.ToString("yyyyMMddHHmmss") + xlExtension; // Before attempting to import the file, verify // that the FileUpload control contains a file. if (TextFile.HasFile) { // Get the name of the Excel spreadsheet. string strFileName = Server.HtmlEncode(TextFile.FileName); // Get the extension of the text. string strExtension = Path.GetExtension(strFileName); // Validate the file extension. if (strExtension != ".TXT" && strExtension!=".txt") { Response.Write("alert('Invalid text file!');"); return; } // Generate the file name to save the text file. //string strUploadFileName = "C:/Documents and Settings/rhlim/My Documents/Visual Studio 2005/WebSites/SoD/UploadFiles/" + DateTime.Now.ToString("yyyyMMddHHmmss") + strExtension; if (DEMUserRoleRB.Checked) { string strExcelOutputFilename = "C:/" + "userrolelist" + xlExtension; using (StreamWriter outputWriter = new StreamWriter(File.Create(strExcelOutputFilename))) { StreamReader inputReader = new StreamReader(TextFile.FileContent); string fileContent = inputReader.ReadToEnd(); fileContent = fileContent.Replace('|', ','); outputWriter.Write(fileContent); //TextFile.SaveAs(strExcelOutputFilename); inputReader.Close(); UploadStatusLabel.Text = "Conversion successful. File is stored at directory C:/"; } //string strExcelOutputFilename = "C:/Documents and Settings/rhlim/My Documents/" + DateTime.Now.ToString("yyyyMMddHHmmss")+xlExtension; // Save the Excel spreadsheet on server. //TextFile.SaveAs (strExcelOutputFilename); } } else Response.Write("alert('Please select a file');"); 

.csv文件的示例输出(突出显示有错误的行):

在此处输入图像描述

我已经意识到我的错误,这是由于变量中的commans导致名称分裂。

是否有任何建议,以便尽管在变量之间有commans,我仍然可以将它们转换为.csv文件?

你检查了[Chua Wei Loon]是不是真的[Chua Wei,Loon]? 您是否先删除了数据中的逗号?

输入文件是管道分隔的,因为数据包含逗号。 因此,将分隔符更改为逗号将导致您遇到的问题。 解决方案:保留管道分隔符。 为什么你觉得你需要更换它们? 我确定Excel可以读取管道分隔的文件。