首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用c#中的Open Xml SDK将DataTable导出到Excel

使用C#中的Open XML SDK将DataTable导出到Excel是一种常见的数据导出方法。Open XML SDK是一个免费的开源库,可以用于创建、读取和编辑Microsoft Office格式的文档,如Word、Excel等。

以下是使用Open XML SDK将DataTable导出到Excel的步骤:

  1. 安装Open XML SDK:可以通过NuGet包管理器安装Open XML SDK。在Visual Studio中,右键单击项目,选择“管理NuGet程序包”,然后搜索“DocumentFormat.OpenXml”并安装。
  2. 创建Excel文件:使用Open XML SDK创建一个Excel文件,并将DataTable导出到该文件中。以下是一个示例代码:
代码语言:csharp
复制
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
using System.Data;
using System.IO;

public static void ExportDataTableToExcel(DataTable dataTable, string filePath)
{
    using (var spreadsheetDocument = SpreadsheetDocument.Create(filePath, SpreadsheetDocumentType.Workbook))
    {
        var workbookPart = spreadsheetDocument.AddWorkbookPart();
        workbookPart.Workbook = new Workbook();

        var worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
        var sheetData = new SheetData();
        worksheetPart.Worksheet = new Worksheet(sheetData);

        var sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild(new Sheets());

        var sheet = new Sheet()
        {
            Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart),
            SheetId = 1,
            Name = "Sheet1"
        };
        sheets.Append(sheet);

        var headerRow = new Row();
        foreach (DataColumn column in dataTable.Columns)
        {
            var cell = new Cell();
            cell.DataType = CellValues.String;
            cell.CellValue = new CellValue(column.ColumnName);
            headerRow.AppendChild(cell);
        }
        sheetData.AppendChild(headerRow);

        foreach (DataRow row in dataTable.Rows)
        {
            var dataRow = new Row();
            foreach (DataColumn column in dataTable.Columns)
            {
                var cell = new Cell();
                cell.DataType = CellValues.String;
                cell.CellValue = new CellValue(row[column].ToString());
                dataRow.AppendChild(cell);
            }
            sheetData.AppendChild(dataRow);
        }
    }
}
  1. 调用方法:可以在需要导出Excel的地方调用上面的方法,将DataTable和文件路径作为参数传递。例如:
代码语言:csharp
复制
var dataTable = new DataTable();
// 添加列和数据到DataTable
ExportDataTableToExcel(dataTable, "output.xlsx");

这样就可以将DataTable导出到Excel文件中了。需要注意的是,Open XML SDK可能不支持所有的Excel功能,因此在使用时需要根据具体情况进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券