我正在处理一个分块的网络应用程序,我的同事给我提供了一个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();
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();
}
一种选择是使用第三方库创建XLS文件,另一种选择是使用COM互操作将Excel打开CSV文件并将其保存为XLS。