aardio 文档

dotNet.ReoGrid 扩展库 - 内存工作簿(Memory Workbook)

创建内存工作簿是一种高效的选择,特别适用于需要从Excel文件加载数据、编辑工作表内容,然后另存为新Excel文件的场景。与传统创建屏幕控件的方式不同,内存工作簿无需屏幕控件实例,也不包含视口控制器、鼠标键盘控制器等界面模块。这使得它比基于屏幕控件的实现方式更加轻量高效。

342 图示:从浏览器上传Excel或CSV文件并将数据处理到数据库中

343 图示:从ASP.NET表单页面下载生成的Excel或CSV文件

在aardio中初始化内存工作簿的语法如下:

import dotNet.ReoGrid;
var workbook = ReoGrid.ReoGridControl.CreateMemoryWorkbook();

将工作簿保存为Excel文件到下载流:

// 参数1指定输出流,参数2指定文件格式(Excel2007对应数值30)
workbook.Save(stream, 30);

加载Excel文件到内存工作簿:

// 参数1指定文件路径,参数2可选指定格式(0表示自动检测)
workbook.Load("C:\MyTemplate.xlsx");

可用API

加载/保存Excel文件的API,以及访问工作表中数据和样式的所有方法,都与屏幕组件保持完全一致。

不可用API

由于内存工作簿的特性,以下API不被支持:

在Web应用中使用内存工作簿

在Web应用中,ReoGrid内存工作簿非常适合处理从网页客户端上传的电子表格数据,或生成供下载的Excel文件。

344

示例:创建并下载Excel文件

在ASP.NET应用中,可以在页面类中实现以下代码来生成Excel文件并提示用户下载:

// 创建内存工作簿实例
var grid = ReoGrid.ReoGridControl.CreateMemoryWorkbook();

// 获取默认的第一个工作表(新工作簿包含一个空白工作表)
var sheet1 = grid.Worksheets[0];

// 在A1单元格填入文本
sheet1["A1"] = "Hello World";

// 在A2到E2区域填入数据和公式
sheet1["A2:D2"] = [ 
    [10, 20, "=A2+B2", "=SUM(A2:C2)"] 
];

// 准备文件下载响应(此处为伪代码,实际web开发需结合具体框架)
/*
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("Content-Disposition", "attachment; filename=SampleData.xlsx");
*/

// 以Excel 2007格式保存工作簿到输出流
grid.Save(io.open("SampleData.xlsx","w+b"), 30/*Excel2007*/);

/*
Response.Flush();
Response.End();
*/

aardio使用说明

  1. 实际web开发中需要根据具体web框架处理响应流
  2. FileFormat.Excel2007在aardio中对应数值30,直接使用数值更高效
  3. 公式语法与Excel完全一致,可直接使用
  4. 多维数组赋值时注意aardio数组起始索引为1,但ReoGrid接口保持.NET习惯使用0起始索引

Markdown 格式