c#上万级数据二维数组数据导出到excel
时间: 2024-02-01 12:03:39 浏览: 241
处理大量数据时,使用C#的二维数组将数据导出到Excel可能会导致性能问题,因为Excel应用程序需要反复调用COM接口来处理大量数据。另一种更好的方法是使用Open XML SDK来生成Excel文件。以下是一个简单的代码示例:
```csharp
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
// 创建Excel文件
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create("output.xlsx", SpreadsheetDocumentType.Workbook)) {
// 添加WorkbookPart
WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
workbookPart.Workbook = new Workbook();
// 添加WorksheetPart
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());
// 添加SheetPart
Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild<Sheets>(new Sheets());
Sheet sheet = new Sheet() {
Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart),
SheetId = 1,
Name = "Sheet1"
};
sheets.Append(sheet);
// 获取二维数组的行数和列数
int rows = array.GetLength(0);
int columns = array.GetLength(1);
// 将数据写入Excel单元格
SheetData sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();
for (int i = 0; i < rows; i++) {
Row row = new Row();
for (int j = 0; j < columns; j++) {
Cell cell = new Cell() {
CellValue = new CellValue(array[i, j].ToString()),
DataType = CellValues.String
};
row.Append(cell);
}
sheetData.Append(row);
}
}
```
在上面的代码中,`array`是你要导出的二维数组,`output.xlsx`是导出的Excel文件名。在使用Open XML SDK生成Excel文件时,你不需要安装Microsoft Office,因为Open XML SDK是一个独立的组件。
阅读全文