将CSV转换为XLS

我正在一个分块的Web应用程序中工作,我从我的工作伙伴那里得到一个CSV对象,我必须将其转换为XLS才能传递给他们构建的Excel处理器。 此CSV对象由字符“;”分隔。

我想知道的是如何以编程方式将CSV对象转换为XLS。

您应该很容易将CSV对象转换为字符串数组的数组,然后执行以下示例(您需要添加对Microsoft.Office.Interop.Excel的引用):

using Excel = Microsoft.Office.Interop.Excel; Excel.Application excel = new Excel.Application(); Excel.Workbook workBook = excel.Workbooks.Add(); Excel.Worksheet sheet = workBook.ActiveSheet; var CsvContent = new string[][] { new string[] {"FirstName", "UserName", "PostCode", "City"}, new string[] {"John", "Smith", "4568", "London"}, new string[] {"Brian", "May", "9999", "Acapulco"} }; for (int i = 0; i < CsvContent.Length; i++) { string[] CsvLine = CsvContent[i]; for (int j = 0; j < CsvLine.Length; j++) { sheet.Cells[i + 1, j + 1] = CsvLine[j]; } } workBook.SaveAs(@"C:\Temp\fromCsv.xls"); workBook.Close(); 

输出是否需要采用传统XLS格式? 如果XLSX可以接受, EPPlus是一个很棒的.NET库,用于编写电子表格。 较旧的excellibrary可以生成XLS文件。

解析CSV文件时只需要几行代码(只需注意双引号)并编写输出电子表格。

一种选择是使用第三方库来创建XLS文件,另一种选择是使用COM互操作来操作Excel以打开CSV文件并将其另存为XLS。

这个C#Excel将数据从CSV导入Excel有帮助吗? 它似乎解决了你需要做的事情。

  using Excel = Microsoft.Office.Interop.Excel; public void Convert_CSV_To_Excel() { // Rename .csv To .xls System.IO.File.Move(@"d:\Test.csv", @"d:\Test.csv.xls"); var _app = new Excel.Application(); var _workbooks = _app.Workbooks; _workbooks.OpenText("Test.csv.xls", DataType: Excel.XlTextParsingType.xlDelimited, TextQualifier: Excel.XlTextQualifier.xlTextQualifierNone, ConsecutiveDelimiter: true, Semicolon: true); // Convert To Excle 97 / 2003 _workbooks[1].SaveAs("NewTest.xls", Excel.XlFileFormat.xlExcel5); _workbooks.Close(); }