|
||||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object com.zhuozhengsoft.pageoffice.excelwriter.Sheet
public class Sheet
Sheet 类,代表Excel中定义的工作表对象。
您只能通过调用Workbook.openSheet(String) 方法获取 Sheet 对象。
方法摘要 | |
---|---|
java.lang.String |
getName()
获取 Sheet 的名称。 |
Cell |
openCell(java.lang.String cellAddress)
打开指定的单元格,并返回 Cell 对象。 |
Cell |
openCellByDefinedName(java.lang.String definedName)
打开具有指定名称(Excel中定义的名称)的单元格,并返回 Cell 对象。 |
Cell |
openCellRC(int row,
int col)
打开指定的单元格,并返回 Cell 对象。 |
Table |
openTable(java.lang.String rangeAddress)
打开指定的单元格区域,并返回 Table 对象。 |
Table |
openTable(java.lang.String rangeAddress,
boolean autoIncrease)
打开指定的单元格区域,并返回 Table 对象。 |
Table |
openTableByDefinedName(java.lang.String definedName,
int rowCount,
int colCount)
打开具有指定名称(Excel中定义的名称)的单元格区域,并返回 Table 对象。 |
Table |
openTableByDefinedName(java.lang.String definedName,
int rowCount,
int colCount,
boolean autoIncrease)
打开具有指定名称(Excel中定义的名称)的单元格区域,并返回 Table 对象。 |
void |
setAllowAdjustRC(boolean value)
设置当工作表只读时,是否允许用户手动调整行列。 |
void |
setAutoFit(boolean value)
设置工作表中的单元格是否自动显示完全值。 |
void |
setReadOnly(boolean value)
设置工作表是否只读。 |
从类 java.lang.Object 继承的方法 |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
方法详细信息 |
---|
public java.lang.String getName() throws java.io.IOException
这里返回的是打开当前Sheet时使用的Sheet名称。
java.io.IOException
public void setReadOnly(boolean value) throws java.io.IOException
如果值为true,处于可编辑的Sheet将变成只读。如果值为false,处于只读的Sheet将变成可编辑。
只有当文档打开模式是 OpenModeType.xlsSubmitForm 时,ReadOnly 属性才有效。默认值为 true。
java.io.IOException
public void setAutoFit(boolean value) throws java.io.IOException
如果值为true,工作表中的单元格将自动扩展显示完全值。
java.io.IOException
public void setAllowAdjustRC(boolean value) throws java.io.IOException
如果值为true,允许用户手动调整行列。
java.io.IOException
public Cell openCell(java.lang.String cellAddress) throws java.lang.Exception
下面的示例展示了如何调用 openCell 方法。
Workbook wb = new Workbook(); Sheet sheet1 = wb.openSheet("sheet1"); // 输出数据到单元格,并且设置单元格的颜色。 sheet1.openCell("C2").setValue("卓正软件"); sheet1.openCell("C2").setBackColor(Color.red); sheet1.openCell("C2").setForeColor(Color.yellow); sheet1.openCellRC(2, 4).setValue("PageOffice"); sheet1.openCell("B5").setValue("6"); sheet1.openCell("C5").setValue("3"); sheet1.openCell("D5").setFormula("B5+C5"); poCtrl1.setServerPage("poserver.do"); //此行必须 poCtrl1.setWriter(wb); poCtrl1.webOpen("doc/test.xls", OpenModeType.xlsReadOnly, "张三"); poCtrl1.setTagId("PageOfficeCtrl1"); //此行必须
cellAddress
- 单元格引用字符串。例如:"A1"。
注意:在Excel2003及之前的版本里,最大行数限制为65536,最大列数限制为256。在传入CellAddress参数时注意不要超出最大行列数限制。
java.lang.Exception
public Cell openCellRC(int row, int col) throws java.lang.Exception
注意:在Excel2003及之前的版本里,最大行数限制为65536,最大列数限制为256。在传入行列号参数时注意不要超出最大行列数限制。
row
- 行号。从"1"开始。col
- 列号。从"1"开始。
java.lang.Exception
public Cell openCellByDefinedName(java.lang.String definedName) throws java.lang.Exception
如果指定的名称在当前工作表中不存在,则对该 Cell 对象的所有操作将全部被忽略。
definedName
- 在Excel中定义的名称,可以是全局名称,也可以是局部名称。定义名称时请选择单个单元格,如果选择的是单元格区域,那么只会返回左上角的单元格对象。
java.lang.Exception
public Table openTable(java.lang.String rangeAddress) throws java.lang.Exception
在PageOffice中,我们把Excel工作表上的任意一块连续的单元格区域定义为一个Table对象。如果您需要操作一个单元格区域,您就应该使用 Table 对象。
如果要输出到表格里的实际数据行数超过了 RangeAddress 指定的单元格区域行数,Table 将会自动扩展单元格行数到实际大小,并且给新的单元格数据行应用 RangeAddress 指定的单元格区域的格式。如果您不希望表格按实际数据行数自动扩展,而维持 RangeAddress 指定的大小,您需要调用 Sheet.openTable(string, bool) 方法。
示例代码 1: 下面的示例展示了如何调用 OpenTable 方法在一个已存在格式的空表上输出数据。
Workbook wb = new Workbook(); Sheet sheet1 = wb.openSheet("sheet1"); Table table1 = sheet1.openTable("B5:F10"); // 输出数据到表格 Random r = new Random(); for (int j = 0; j < 4; j++){ for (int i = 0; i < table1.getDataFields().size(); i++){ table1.getDataFields().get(i).setValue(String.valueOf(r.nextInt(100))); // 模拟来自数据库的数据 } table1.nextRow(); } table1.close(); // 必须 poCtrl1.setServerPage("poserver.do"); //此行必须 poCtrl1.setWriter(wb); poCtrl1.webOpen("doc/test.xls", OpenModeType.xlsReadOnly, "张三"); poCtrl1.setTagId("PageOfficeCtrl1"); //此行必须
示例代码 2: 下面的示例展示了如何调用 OpenTable 方法在一个空白工作表上画表及输出其数据,同时也展示了如何对超出范围的数据进行动态报警。
Workbook wb = new Workbook(); Sheet sheet1 = wb.openSheet("sheet1"); Table table1 = sheet1.openTable("B5:F10"); // 画表格线、设置表格颜色 table1.setRowHeight(20); table1.setColumnWidth(14.25); table1.getBorder().setBorderType(XlBorderType.FullGrid); table1.getBorder().setLineStyle(XlBorderLineStyle.Continuous); table1.getBorder().setWeight(XlBorderWeight.Thin); table1.getBorder().setLineColor(Color.gray); table1.setBackColor(Color.decode("#E6E6E6")); // 画表头 sheet1.openTable("B5:F5").setBackColor(Color.blue); sheet1.openTable("B5:F5").setForeColor(Color.white); table1.getDataFields.get(0).setValue("字段标题1"); table1.getDataFields.get(1).setValue("字段标题2"); table1.getDataFields.get(2).setValue("字段标题3"); table1.getDataFields.get(3).setValue("字段标题4"); table1.getDataFields.get(4).setValue("字段标题5"); table1.nextRow(); // 输出数据到表格 Random r = new Random(); for (int j = 0; j < 4; j++){ for (int i = 0; i < table1.getDataFields().size(); i++){ int iValue = r.nextInt(1000); table1.getDataFields().get(i).setValue(String.valueOf(iValue)); // 模拟来自数据库的数据 if (iValue > 800){ // 如果单元格的值超过900,就设置当前单元格的颜色给予警示。 table1.getDataFields().get(i).setBackColor(Color.red); table1.getDataFields().get(i).setForeColor(Color.yellow); } } table1.nextRow(); } // 画表尾,并计算合计值 sheet1.openTable("B10:F10").setBackColor(Color.orange); table1.getDataFields().get(0).setValue("合计"); // 这里的合计值可以开发者自己计算,也可以利用Excel强大的公式功能,这样会非常简便 table1.getDataFields().get(4).setFormula = "sum(F6:F9)"; table1.nextRow(); table1.close(); // 必须 // 将 C10:E10 指定的单元格区域合并成一个单元格 sheet1.openTable("C10:E10").merge(); poCtrl1.setServerPage("poserver.do"); //此行必须 poCtrl1.setWriter(wb); poCtrl1.webOpen("doc/test.xls", OpenModeType.xlsReadOnly, "张三"); poCtrl1.setTagId("PageOfficeCtrl1"); //此行必须
rangeAddress
- Excel风格的单元格区域引用字符串。例如:"A1:F5",表示一个矩形单元格区域,其左上角单元格的行号是1,列号是1,右下角单元格的行号是5,列号是6。
注意:在Excel2003及之前的版本里,最大行数限制为65536,最大列数限制为256。在传入RangeAddress参数时注意不要超出最大行列数限制。
java.lang.Exception
public Table openTable(java.lang.String rangeAddress, boolean autoIncrease) throws java.lang.Exception
rangeAddress
- Excel风格的单元格区域引用字符串。例如:"A1:F5",表示一个矩形单元格区域,其左上角单元格的行号是1,列号是1,右下角单元格的行号是5,列号是6。
注意:在Excel2003及之前的版本里,最大行数限制为65536,最大列数限制为256。在传入RangeAddress参数时注意不要超出最大行列数限制。
autoIncrease
- 可选参数。默认值为 true。如果值为false,表格不会按实际数据行数自动扩展,而是维持 RangeAddress 指定的大小,多余的数据行将被抛弃。
java.lang.Exception
public Table openTableByDefinedName(java.lang.String definedName, int rowCount, int colCount) throws java.lang.Exception
如果指定的名称在当前工作表中不存在,则对该 Table 对象的所有操作将全部被忽略。
definedName
- 在Excel中定义的名称,可以是全局名称,也可以是局部名称。rowCount
- 名称指定区域的行数。colCount
- 名称指定区域的列数。
java.lang.Exception
public Table openTableByDefinedName(java.lang.String definedName, int rowCount, int colCount, boolean autoIncrease) throws java.lang.Exception
如果指定的名称在当前工作表中不存在,则对该 Table 对象的所有操作将全部被忽略。
definedName
- 在Excel中定义的名称,可以是全局名称,也可以是局部名称。rowCount
- 名称指定区域的行数。colCount
- 名称指定区域的列数。autoIncrease
- 可选参数。默认值为 true。如果值为false,表格不会按实际数据行数自动扩展,而是维持 RowCount 指定的大小,多余的数据行将被抛弃。
java.lang.Exception
|
||||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |