PageOffice封装了一组用于动态输出数据到Excel文档的相关类,全部包含在PageOffice.ExcelWriter 命名空间之中。PageOffice对Excel的赋值操作分两种方式:
-
单元格赋值。这个很好理解, sheet.OpenCell("D5"),返回值就是一个Cell对象;
-
针对一个区域赋值。这个区域在PageOffice的概念里就是Table对象,比如:sheet.OpenTable("C9:H15")的返回值就是就是Table对象,这个Table就是”C9:H15”这个区域。下面就针对这两种操作方式来分别介绍。
一、给Excel单元格赋值
JAVA代码:
Workbook wb = new Workbook();
Sheet sheet = wb.openSheet("销售订单");
sheet.openCell("D5").setValue(“北京某某公司”);
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
poCtrl1.setServerPage("poserver.do");
poCtrl1.setWriter(wb); //注意,不要忘记此句代码
poCtrl1.webOpen("{模板文件路径}", OpenModeType.xlsSubmitForm, "");
ASP.NET代码:
PageOffice.ExcelWriter.Workbook workBook = new PageOffice.ExcelWriter.Workbook();
PageOffice.ExcelWriter.Sheet sheet = workBook.OpenSheet("销售订单");
sheet.OpenCell("D5").Value = ”北京某某公司”;
PageOfficeCtrl1.SetWriter(workBook); //注意,不要忘记此句代码
PageOfficeCtrl1.ServerPage = "pageoffice/server.aspx";
PageOfficeCtrl1.WebOpen("{模板文件路径}", PageOffice.OpenModeType.xlsSubmitForm, "John");
通过上面的代码可以看出,给Excel单元格赋值,首先需要创建Workbook对象,然后通过此对象的OpenSheet方法,获取到Sheet对象,再通过Sheet对象的OpenCell方法就可以获取的Cell对象,进行赋值或其他操作。
Sheet对象有两个方法可以获取到Cell对象:
- OpenCell(string CellAddress),参数为单元格引用字符串。例如:"A1";
- OpenCellRC(int Row,int Col),参数为excel单元格的行数和列数。所以上面给Excel单元格赋值的代码改成下面的代码也是可以的。
JAVA代码:
sheet.openCellRC(5,4).setValue("北京某某公司");
ASP.NET代码:
sheet.OpenCellRC(5,4).Value = "北京某某公司";
设置Cell的样式
PageOffice中的Cell对象有很多个设置单元格样式的属性和对象,如下表所示:
BackColor | 设置单元格的背景色。 |
Border | 获取边框对象。 |
Font | 获取字体字体。 |
ForeColor | 设置单元格的前景色。 |
Formula | 设置单元格的公式。 |
HorizontalAlignment | 设置单元格的水平对齐方式。 |
NumberFormatLocal | 设置单元格的数据显示格式。 |
Value | 设置单元格的值。 |
VerticalAlignment | 设置单元格的垂直对齐方式。 |
- 设置单元格的背景色
JAVA代码:
Workbook wb = new Workbook();
wb.openSheet("Sheet1").openCell("E16").setBackColor(new Color(0, 128, 128));
ASP.NET代码:
PageOffice.ExcelWriter.Workbook workBook = new PageOffice.ExcelWriter.Workbook();
wb.OpenSheet("Sheet1").OpenCell("E16").BackColor = Color.FromArgb(0, 128, 128);
- 设置单元格的字体,就需要操作Font对象进行设置。Font对象的属性:
Bold | 设置字体是否加粗。 |
Italic | 设置字体是否为斜体。 |
Name | 设置字体名称。 |
Size | 设置字体大小。以磅为单位。 |
- 设置单元格的边框样式,就需要操作Border对象进行设置。Border对象的属性:
BorderType | 设置边框的类型。 |
LineColor | 设置边框的颜色。 |
LineStyle | 设置边框的线条样式。 |
Weight | 设置边框的粗细。 |
使用Border对象设置Excel的单元格样式,是可以分别对单元格的上下左右边框单独设置样式的,所以再复杂的表格样式用PageOffice也可以“绘制”出来。PageOffice中的Table对象可以设置Table的Border样式,所以在此不作详细的叙述。
二、给Excel中的Table赋值
PageOffice开发平台中,针对Excel文件的处理增加了一个“Table”的概念,一个Table指的就是一个区域,例如:sheet.OpenTable("C9:H15")的返回值就是就是Table对象,这个Table所操作的区域就是”C9:H15”。 为何需要这个Table的概念呢?下面就说明一下使用Table对象的优点。
在实际的项目需求中,常常会需要在Excel 中循环的插入多条数的数据,比如:需要在excel中以B11单元格为起始位置,插入10条包含6个字段的数据,如果使用Cell对象写一个循环程序给单元格赋值会是这样的:
DataTable dt = new DataTable();
for (int i = 0; i < 10; i++) // 10条数据
{
sheet.OpenCellRC("B"+(11+i).ToString()).Value = dt.Rows[i][0].ToString();
sheet.OpenCellRC("C"+(11+i).ToString()).Value = dt.Rows[i][1].ToString();
sheet.OpenCellRC("D"+(11+i).ToString()).Value = dt.Rows[i][2].ToString();
sheet.OpenCellRC("E"+(11+i).ToString()).Value = dt.Rows[i][3].ToString();
sheet.OpenCellRC("F"+(11+i).ToString()).Value = dt.Rows[i][4].ToString();
sheet.OpenCellRC("G"+(11+i).ToString()).Value = dt.Rows[i][5].ToString();
}
如果使用Table对象编程,就与操作数据集的概念一样,代码也更容易读懂,代码如下:
DataTable dt = new DataTable();
PageOffice.ExcelWriter.Table table1 = sheet.OpenTable("B11:G20");
for (int i = 0; i < 10; i++) // 10条数据
{
for (int j = 0; j <6; j++) // 6个字段
{
table1.DataFields[j].Value = dt.Rows[i][j].ToString();
}
table1.NextRow();
}
table1.Close();
读者肯定会认为通过Cell实现这个赋值操作还有一个更好的方法,使用OpenCellRC方法,通过行列号操作会更简单,代码如下:
DataTable dt = new DataTable();
for (int i = 0; i < 10; i++) // 10条数据
{
for (int j = 0; j <6; j++) // 6个字段
{
sheet.OpenCellRC(11+i,2+j )Value = dt.Rows[i][j].ToString();
}
}
情况确实是这样,但是这个代码相对于Table对象的操作来说有点晦涩,只是看OpenCellRC中的参数是不容易立刻知道操作的是哪个单元格的,还有一个情况是通过Cell赋值无法做到的,那就是在已有的表格模板中插入不定行数的数据。例如:下图中的模板在“合计”之前只有4行空白行,怎么动态插入10条或更多条数据并且数据行的样式也统一呢?
:-:
这种情况使用Cell是无法解决问题的,但是前面使用Table给Excel赋值的代码就可以解决这个问题。使用Table赋值的特点是:在赋值的过程中,如果Table所包含的区域行数不够,那么Table会自动插入行,并且循环重复使用Table区域中各行的样式,直到所有的数据都填充完毕。使用Table对象填充数据的效果如下图所示:
:-:
相关推荐
在具体的实现中,我们可以使用 PageOffice 的基本动态填充功能,实现 Word 文档的动态生成。例如,我们可以使用 PageOffice 的 API,向 Word 文档中添加标题、段落、图片等内容,并设置字体、颜色、对齐方式等样式。...
PageOffice[1]是一款帮助Web应用系统或Web网站实现用户在线编辑Word、Excel、PowerPoint文档,Word/Excel模板动态填充,Word/Excel在线输入提交,系统数据导入导出word、excel文档的Office快速开发组件库,是目前把...
集成PageOffice不但能够实现在线编辑、保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和用户输入提交的高级复杂功能。 PageOffice除了提供Word/Excel动态数据填充,格式控制,...
总的来说,PageOffice提供了一套高效、便捷的解决方案,使开发者能以C#语言快速实现Word模板的动态填充和文件生成,极大地提高了文档处理的效率和灵活性。通过深入理解和熟练运用FileMaker控件,可以满足各种复杂...
一个演示Struts2下如何集成PageOffice的最简单示例。...集成PageOffice不但能够实现在线编辑、保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和用户输入提交的高级复杂功能。
PageOffice支持多种Office格式,包括Word、Excel和PowerPoint等。 FileMaker标签控件是PageOffice提供的一个关键组件,它允许开发者在网页上创建和控制各种Office文档元素,如文本、表格、图片等。在批量生成Word...
集成PageOffice不但能够实现在线编辑、保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和用户输入提交的高级复杂功能。只要集成PageOffice,您将能够轻松应对在Web项目开发中遇见...
在这个场景下,我们不再依赖POI,而是利用PageOffice的动态填充和创建功能来生成Word文档。 首先,要使用PageOffice,你需要在服务器端进行必要的配置。这包括安装PageOffice的服务器端程序,并在Web项目的"WebRoot...
集成PageOffice不但能够实现在线编辑、保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和用户输入提交的高级复杂功能。只要集成PageOffice,您将能够轻松应对在Web项目开发中遇见...
除了批量转换Word文档,PageOffice还支持其他Office文档格式的处理,如Excel和PowerPoint。这使得它适用于多种场景,包括报表自动化生成、在线编辑和协作,以及自定义的业务流程自动化。 综上所述,PageOffice提供...
服务器端无需安装Office软件,根据数据库数据通过PageOffice动态赋值即可完成复杂的具有严谨规范格式的文档生成任务,并且可以在浏览器页面里查看、编辑生成的文档。例如Word公文通告、Excel报表等
在Excel篇中,教程介绍了Workbook类、Sheet类、Table类和Cell类等常用接口对象,并指导如何动态填充Excel文档、实现单元格点击事件、用户自定义Excel模板、读取数据以及隐藏行号和列标的高级操作。 Java篇中,主要...
使用的是PageOffice,除了提供Word/Excel动态数据填充,格式控制,Word/Excel用户输入提交,Word/Excel/PowerPoint/WPS等Office文档的在线打开、只读浏览、编辑、保存等功能外,还给在线协同办公内置了强大的支持...
以下将详细介绍PageOffice组件的关键功能和如何在Java环境中使用它来实现Word文档的在线编辑以及从数据库中获取数据并填充到文档中。 1. **PageOffice组件介绍**: PageOffice是一款基于Java的控件,可以无缝集成...
集成PageOffice不但能够实现在线编辑、保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和用户输入提交的高级复杂功能。只要集成PageOffice,您将能够轻松应对在Web项目开发中遇见...
在不依赖模板的情况下,PageOffice可以实现在空白Excel文件中绘制表格,生成报表。 首先,集成PageOffice到你的Java Web项目中。这通常包括以下步骤: 1. **拷贝PageOffice库文件**:将PageOffice示例中的`page...
2. 动态数据填充:PageOffice 能够轻松实现 Word/Excel 动态数据填充,开发人员可以以简洁的代码快速将数据库数据动态填充到 Word/Excel 文档指定位置。 3. 在线打开、编辑、保存:PageOffice 能够在线打开、编辑、...
"PageOffice 客户端js开发帮助.CHM"是一个帮助文件,它包含了PageOffice客户端JavaScript API的详细文档。这个文件会指导开发者如何在前端页面中集成PageOffice,利用JavaScript调用各种接口,实现对文档的操作,...
使用的是PageOffice,除了提供Word/Excel动态数据填充,格式控制,Word/Excel用户输入提交,Word/Excel/PowerPoint/WPS等Office文档的在线打开、只读浏览、编辑、保存等功能外,还给在线协同办公内置了强大的支持...