c#上万级数据二维数组数据导出到excel,使用OpenXML SDK库进行Excel文件的生成速度优化
时间: 2024-03-21 19:40:47 浏览: 75
使用OpenXML SDK库生成Excel文件的效率比使用Interop.Excel更高,因为它是直接生成Office Open XML格式的文件,而不是通过Excel应用程序进行操作。
以下是使用OpenXML SDK库进行数据导出的示例代码:
```csharp
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
using System;
using System.Linq;
public static void ExportToExcel(string filePath, string[,] data)
{
// Create a new Excel document
using (SpreadsheetDocument document = SpreadsheetDocument.Create(filePath, SpreadsheetDocumentType.Workbook))
{
// Add a new workbook
WorkbookPart workbookPart = document.AddWorkbookPart();
workbookPart.Workbook = new Workbook();
// Add a new worksheet
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());
// Add a new sheet to the workbook
Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());
Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Sheet1" };
sheets.Append(sheet);
// Write data to the worksheet
SheetData sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();
for (int i = 0; i < data.GetLength(0); i++)
{
Row row = new Row();
for (int j = 0; j < data.GetLength(1); j++)
{
Cell cell = new Cell(new InlineString(new Text(data[i, j].ToString())));
row.Append(cell);
}
sheetData.Append(row);
}
// Save the workbook
workbookPart.Workbook.Save();
}
}
```
在此示例代码中,我们使用OpenXML SDK库创建了一个新的Excel文档,并向其中添加了一个名为“Sheet1”的工作表,然后将数据写入该工作表。
您可以根据需要对此代码进行修改,例如更改工作表的名称、添加样式和格式等,以满足您的具体需求。
阅读全文