OpenXML SDK - диапазоны Excel - PullRequest
       7

OpenXML SDK - диапазоны Excel

2 голосов
/ 20 января 2012

С Microsoft OpenXML SDK есть ли способ вставить из DataSet в Excel, используя диапазоны?

Раньше Excel API (Interop Assemblies) позволял вам это делать.Теперь, по крайней мере, попробовав и прочитав образцы, я нашел единственный способ - использовать циклы для создания каждой строки и ячейки.

Я видел, как некоторые сторонние инструменты делают это, но мне бы этого хотелосьиз коробки.Спасибо.

1 Ответ

0 голосов
/ 20 января 2012

Забудьте об использовании взаимодействия, вам нужно будет установить Excel локально.Лучший сторонний инструмент, который я когда-либо использовал с Excel, - это Gembox Spreedsheet, и он бесплатный:

http://www.gemboxsoftware.com/

Полные статьи о том, как использовать программное обеспечение, находятся на вкладке поддержки на сайте.,Вот пример того, как легко вставить данные, чтобы превзойти их из набора данных:

// Create new ExcelFile.
ExcelFile ef2 = new ExcelFile();

// Imports all the tables from DataSet to new file.
foreach (DataTable dataTable in dataSet.Tables)
{
    // Add new worksheet to the file.
    ExcelWorksheet ws = ef2.Worksheets.Add(dataTable.TableName);

    // Change the value of the first cell in the DataTable.
    dataTable.Rows[0][0] = "This is new file!";

    // Insert the data from DataTable to the worksheet starting at cell "A1".
    ws.InsertDataTable(dataTable, "A1", true);
}

// Save the file to XLS format.
ef2.SaveXls("DataSet.xls");

Вы можете читать и писать в файлы с openXML следующим образом:

ExcelFile ef = new ExcelFile();

// Loads OpenXML file.
ef.LoadXlsx("filename.xlsx", XlsxOptions.None);

// Selects first worksheet.
ExcelWorksheet ws = ef.Worksheets[0];

// Change the value of the cell "A1".
ws.Cells["A1"].Value = "Hello world!";

// Saves the file in OpenXML format.
ef.SaveXlsx("NewFile.xlsx")

Я использовалэтот компонент .Net много раз с большим успехом и минимальным количеством кода.

...