Previous topicNext topic
Help > 开发指南 > Excel > API > 示例 > Workbook >
如何:将文档加载到工作簿

使用 Workbook.LoadDocument 方法将现有电子表格文档加载到 Workbook 实例中。DocumentFormat 枚举成员定义文档格式。

从文件加载

Vb.Net
'创建一个Workbook工作簿对象.
Dim workbook1 As New DevExpress.Spreadsheet.Workbook()
'从文件中加载Workbook工作簿
workbook1.LoadDocument("D:\Document.xlsx", DevExpress.Spreadsheet.DocumentFormat.Xlsx)

C#
// 创建一个Workbook工作簿对象.
DevExpress.Spreadsheet.Workbook workbook1 = new DevExpress.Spreadsheet.Workbook();
//从文件中加载Workbook工作簿
workbook1.LoadDocument(@"D:\Document.xlsx", DevExpress.Spreadsheet.DocumentFormat.Xlsx);

从流加载

Vb.Net
'创建一个Workbook工作簿对象.
Dim workbook1 As New DevExpress.Spreadsheet.Workbook()
'从stream流中加载Workbook工作簿
Using stream As New FileStream("D:\Document.xlsx", FileMode.Open)
    workbook.LoadDocument(stream, DevExpress.Spreadsheet.DocumentFormat.Xlsx)
End Using

C#
// 创建一个Workbook工作簿对象.
DevExpress.Spreadsheet.Workbook workbook1 = new DevExpress.Spreadsheet.Workbook();
//从stream流中加载Workbook工作簿
using (FileStream stream = new FileStream("D:\\Document.xlsx", FileMode.Open))
{
    workbook.LoadDocument(stream, DevExpress.Spreadsheet.DocumentFormat.Xlsx);
}

异步负载

使用 Workbook.LoadDocumentAsync 方法从文件、流或字节数组异步加载工作簿。

重要

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

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

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");
        }
    }
}

计算加载的文档中的公式

工作簿的默认计算模式为“Manual”(手动)。此模式意味着在加载文档时,电子表格组件不会重新计算公式。调用 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()

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

更改计算模式

使用 Workbook.Options.CalculationMode 属性指定何时计算工作簿中的公式。

可以使用以下计算模式:

Vb.Net
'创建一个Workbook工作簿对象.
Dim workbook As New DevExpress.Spreadsheet.Workbook()
'从文件中加载Workbook工作簿
workbook.LoadDocument("D:\Document.xlsx", DevExpress.Spreadsheet.DocumentFormat.Xlsx)
'更改工作簿的计算模式
workbook.Options.CalculationMode = DevExpress.Spreadsheet.WorkbookCalculationMode.UseDocumentSettings

C#
// 创建一个Workbook工作簿对象.
DevExpress.Spreadsheet.Workbook workbook = new DevExpress.Spreadsheet.Workbook();
//从文件中加载Workbook工作簿
workbook.LoadDocument(@"D:\Document.xlsx", DevExpress.Spreadsheet.DocumentFormat.Xlsx);
//更改工作簿的计算模式
workbook.Options.CalculationMode = DevExpress.Spreadsheet.WorkbookCalculationMode.UseDocumentSettings;

另见
支持的电子表格格式
如何:将文档保存到文件