OpenXML - 如何将电子表格文档保存到流中

作者:编程家 分类: excel 时间:2025-09-15

OpenXML - 如何将电子表格文档保存到流中?

在许多业务场景中,我们需要将电子表格文档保存到流中,以便进行进一步的处理或传输。OpenXML 是一种用于处理 Office 文档的开放式文件格式,它提供了丰富的功能和 API,使我们可以轻松地创建、修改和保存电子表格文档。本文将介绍如何使用 OpenXML 将电子表格文档保存到流中,并提供一个案例代码供参考。

案例代码:

下面的案例代码演示了如何使用 OpenXML 将电子表格文档保存到流中。首先,我们需要创建一个空的电子表格文档,并添加一些数据和格式。然后,我们使用 MemoryStream 类将文档保存到流中。

csharp

using DocumentFormat.OpenXml;

using DocumentFormat.OpenXml.Packaging;

using DocumentFormat.OpenXml.Spreadsheet;

using System.IO;

public class ExcelWriter

{

public void SaveToStream(Stream stream)

{

// 创建一个空的电子表格文档

var spreadsheetDocument = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook);

// 添加一个工作簿部件

var workbookPart = spreadsheetDocument.AddWorkbookPart();

workbookPart.Workbook = new Workbook();

// 添加一个工作表部件

var worksheetPart = workbookPart.AddNewPart();

worksheetPart.Worksheet = new Worksheet(new SheetData());

// 添加数据和格式到工作表部件

var sheetData = worksheetPart.Worksheet.GetFirstChild();

// 添加表头

var row = new Row();

row.Append(new Cell() { CellValue = new CellValue("姓名"), DataType = CellValues.String });

row.Append(new Cell() { CellValue = new CellValue("年龄"), DataType = CellValues.Number });

sheetData.AppendChild(row);

// 添加数据行

row = new Row();

row.Append(new Cell() { CellValue = new CellValue("张三"), DataType = CellValues.String });

row.Append(new Cell() { CellValue = new CellValue("25"), DataType = CellValues.Number });

sheetData.AppendChild(row);

// 保存文档到流中

spreadsheetDocument.Save();

// 关闭文档

spreadsheetDocument.Close();

}

}

以上代码首先创建了一个空的电子表格文档,并添加了一个工作簿部件和一个工作表部件。然后,它添加了表头和数据行到工作表部件中。最后,使用 MemoryStream 类将文档保存到流中。

本文介绍了如何使用 OpenXML 将电子表格文档保存到流中。通过使用 OpenXML 提供的 API,我们可以轻松地创建、修改和保存电子表格文档。希望以上案例代码能对您有所帮助,供您参考和使用。