将CSV转换为XLS

时间:2011-01-24 11:34:31

标签: c# csv xls

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

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

5 个答案:

答案 0 :(得分:16)

您应该很容易将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();

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

C# Excel import data from CSV into Excel会有帮助吗?它似乎解决了你需要做的事情。

答案 4 :(得分:0)

    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();
    }