Previous topicNext topic
Help > 开发指南 > Excel > API > 示例 > Workbook >
如何:将文档保存到文件

使用 Workbook.SaveDocument 方法保存电子表格文档。DocumentFormat 枚举成员指定文档格式。

保存到文件

Vb.Net
'创建一个Workbook工作簿对象.
Dim workbook As New DevExpress.Spreadsheet.Workbook()
'从文件中加载Workbook工作簿
workbook.LoadDocument("D:\Document.xlsx", DevExpress.Spreadsheet.DocumentFormat.Xlsx)
'...
'保存修改的文档到指定文件中.
workbook.SaveDocument("D:\SavedDocument.xlsx", DevExpress.Spreadsheet.DocumentFormat.Xlsx)

C#
// 创建一个Workbook工作簿对象.
DevExpress.Spreadsheet.Workbook workbook = new DevExpress.Spreadsheet.Workbook();
//从文件中加载Workbook工作簿
workbook.LoadDocument(@"D:\Document.xlsx", DevExpress.Spreadsheet.DocumentFormat.Xlsx);
//...
//保存修改的文档到指定文件中.
workbook.SaveDocument(@"D:\SavedDocument.xlsx", DevExpress.Spreadsheet.DocumentFormat.Xlsx);

保存到流

Vb.Net
'创建一个Workbook工作簿对象.
Dim workbook As New DevExpress.Spreadsheet.Workbook()
'从文件中加载Workbook工作簿
workbook.LoadDocument("D:\Document.xlsx", DevExpress.Spreadsheet.DocumentFormat.Xlsx)
'...
'保存修改的文档到文件流中
Using stream As New FileStream("D:\SavedDocument1.xlsx", FileMode.Create, FileAccess.ReadWrite)
    workbook.SaveDocument(stream, DevExpress.Spreadsheet.DocumentFormat.Xlsx)
End Using

C#
// 创建一个Workbook工作簿对象.
DevExpress.Spreadsheet.Workbook workbook = new DevExpress.Spreadsheet.Workbook();
//从文件中加载Workbook工作簿
workbook.LoadDocument(@"D:\Document.xlsx", DevExpress.Spreadsheet.DocumentFormat.Xlsx);
//...
// 保存修改的文档到文件流中
using (FileStream stream = new FileStream(@"D:\SavedDocument1.xlsx", FileMode.Create, FileAccess.ReadWrite))
{
    workbook.SaveDocument(stream, DevExpress.Spreadsheet.DocumentFormat.Xlsx);
}


异步保存

使用 Workbook.SaveDocumentAsync 方法将工作簿异步保存到文件或流中。

重要

调用此方法时,请考虑以下事项:

下面的代码示例演示如何合并两个工作簿并异步保存结果。

Vb.Net
Private Async Sub MergeWorkbooks()
    Using workbook1 As DevExpress.Spreadsheet.Workbook = New DevExpress.Spreadsheet.Workbook()

        Using workbook2 As DevExpress.Spreadsheet.Workbook = New DevExpress.Spreadsheet.Workbook()
            Await Task.WhenAll(New Task() {workbook1.LoadDocumentAsync("D:\book1.xlsx"), workbook2.LoadDocumentAsync("D:\book2.xlsx")})
            workbook1.Append(workbook2)
            Await workbook1.SaveDocumentAsync("D:\merged.xlsx")
        End Using
    End Using
End Sub

C#
private async void MergeWorkbooks()
{
    using (DevExpress.Spreadsheet.Workbook workbook1 = new DevExpress.Spreadsheet.Workbook())
    {
        using (DevExpress.Spreadsheet.Workbook workbook2 = new DevExpress.Spreadsheet.Workbook())
        {
            await Task.WhenAll(new Task[] { workbook1.LoadDocumentAsync(@"D:\book1.xlsx"), workbook2.LoadDocumentAsync(@"D:\book2.xlsx") });
            workbook1.Append(workbook2);
            await workbook1.SaveDocumentAsync(@"D:\merged.xlsx");
        }
    }
}

保存操作前计算公式

工作簿的默认计算模式为“手动”。此模式意味着电子表格组件在保存文档之前不会计算公式。调用 Workbook.Calculate 或 Workbook.CalculateFull 方法以计算工作簿中的所有公式。

Vb.Net
'创建一个Workbook工作簿对象.
Dim workbook As New DevExpress.Spreadsheet.Workbook()
'从文件中加载Workbook工作簿
workbook.LoadDocument("D:\Document.xlsx", DevExpress.Spreadsheet.DocumentFormat.Xlsx)
'...
'保存前先计算一上工作簿中的所有公式
workbook.Calculate()
'保存修改的文档到指定文件中.
workbook.SaveDocument("D:\SavedDocument.xlsx", DevExpress.Spreadsheet.DocumentFormat.Xlsx)

C#
// 创建一个Workbook工作簿对象.
DevExpress.Spreadsheet.Workbook workbook = new DevExpress.Spreadsheet.Workbook();
//从文件中加载Workbook工作簿
workbook.LoadDocument(@"D:\Document.xlsx", DevExpress.Spreadsheet.DocumentFormat.Xlsx);
//...
//保存前先计算一上工作簿中的所有公式
workbook.Calculate();
//保存修改的文档到指定文件中.
workbook.SaveDocument(@"D:\SavedDocument.xlsx", DevExpress.Spreadsheet.DocumentFormat.Xlsx);

另见
支持的电子表格格式
如何:将文档加载到工作簿