Конвертировать CSV в XLS - PullRequest
       26

Конвертировать CSV в XLS

8 голосов
/ 24 января 2011

Я работаю в веб-приложении, разделенном на блоки, и получаю объект CSV от моего рабочего, которого я должен преобразовать в XLS, чтобы передать в построенный ими процессор Excel.Этот объект CSV ограничен символом ";".

Что я хотел бы знать, так это как я могу программно преобразовать объект CSV в XLS.

Ответы [ 5 ]

16 голосов
/ 24 января 2011

Вам должно быть легко преобразовать объект 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();
2 голосов
/ 24 января 2011

Должен ли вывод быть в устаревшем формате XLS? Если XLSX приемлемо, EPPlus - это отличная библиотека .NET для написания электронных таблиц. Старая отлично может создавать файлы XLS.

Для анализа файла CSV необходимо всего несколько строк кода (просто следите за двойными кавычками) и написания выходной электронной таблицы.

0 голосов
/ 13 мая 2015
    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();
    }
0 голосов
/ 24 января 2011

Поможет ли это C # Excel импорт данных из CSV в Excel ?Похоже, что адрес, что вам нужно сделать.

0 голосов
/ 24 января 2011

Один вариант - использовать стороннюю библиотеку для создания файла XLS, а другой - использовать COM-взаимодействие для манипулирования Excel при открытии файла CSV и сохранения его как XLS.

...