欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PageOffice--Excel常用接口类,Table类

程序员文章站 2022-05-30 15:36:35
...

Table 类,代表PageOffice中定义的Excel表格对象。

在PageOffice中,我们把Excel工作表上的任意一块连续的单元格区域定义为一个Table对象。Table 类按照常用的数据库组件中的数据表的概念封装了一系列对连续单元格区域进行的数据操作。 Table 类简化了对Excel单元格区域的各种复杂操作,使得开发者可以像操作熟悉的数据表一样操作Excel中的单元格区域,大大提高了开发效率及代码稳定性。

使用Table对象,您不仅可以在指定的单元格区域里填充数据,甚至还可以在完全空白区域画出表格并填充数据。您只能通过调用 Sheet.openTable(String) 方法获取 Table 对象。

Table类的命名空间


Table类进行写入操作时

  • Java开发时命名空间为:com.zhuozhengsoft.pageoffice.excelwriter
  • ASP.NET开发时命名空间为:PageOffice.ExcelWriter

Table类进行读取操作时

  • Java开发时命名空间为:com.zhuozhengsoft.pageoffice.excelreader
  • ASP.NET开发时命名空间为:PageOffice.ExcelReader

Table类的使用


通过Table类实现对Excel文件的写入和读取操作。
部分实现代码如下:

Java 写入操作,填充数据到Excel文档中:

	PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
	poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必须

	//定义Workbook对象
	Workbook workBook = new Workbook();
	//定义Sheet对象,"Sheet1"是打开的Excel表单的名称
	Sheet sheet = workBook.openSheet("Sheet1");
	//定义Table对象
	Table table = sheet.openTable("B4:F13");
    for(int i=0; i < 5; i++)
    { 
        table.getDataFields().get(0).setValue("产品 " + i);
        table.getDataFields().get(1).setValue("100");
        table.getDataFields().get(2).setValue(String.valueOf(100+i));
        ……
        table.nextRow();
    }
    table.close();
    	
	poCtrl1.setWriter(workBook);
    poCtrl1.setSaveDataPage("savedata.jsp"); // 接收数据的jsp页面或action方法
	poCtrl1.webOpen("doc/test.xls", OpenModeType.xlsNormalEdit, "张三");

Java 读取操作(savedata.jsp或action方法),获取Excel提交的数据:

	Workbook workBook = new Workbook(request, response);
	Sheet sheet = workBook.openSheet("Sheet1");
	Table table = sheet.openTable("B4:F13");
	while (!table.getEOF()) {
		//获取提交的数值
		if (!table.getDataFields().getIsEmpty()) {
			String valueB = table.getDataFields().get(0).getText();
            String valueC = table.getDataFields().get(1).getText();
            String valueD = table.getDataFields().get(2).getText();
            String valueE = table.getDataFields().get(3).getText();
            String valueF = table.getDataFields().get(4).getText();
            // 处理获取到的数据,比如保存到数据库中
            ……
		}
		table.nextRow();//循环进入下一行
	}
	table.close();
	workBook.close();

ASP.NET写入操作,填充数据到Excel文档中:

    PageOffice.ExcelWriter.Workbook workBook = new PageOffice.ExcelWriter.Workbook();
    //定义Sheet对象,"Sheet1"是打开的Excel表单的名称
    PageOffice.ExcelWriter.Sheet sheet = workBook.OpenSheet("Sheet1");
    //定义Table对象
    PageOffice.ExcelWriter.Table table = sheet.OpenTable("B4:F13");
    for(int i=0; i < 50; i++)
    {
        table.DataFields[0].Value = "产品 " + i.ToString();
        table.DataFields[1].Value = "100";
        table.DataFields[2].Value = (100+i).ToString();
        ……
        table.NextRow();
    }
    table.Close();

    PageOfficeCtrl1.SetWriter(workBook);// 注意不要忘记此代码,如果缺少此句代码,不会赋值成功。
    PageOfficeCtrl1.SaveDataPage = "savedata.aspx"; // 接收数据的aspx页面或action方法
    PageOfficeCtrl1.ServerPage = Request.ApplicationPath + "/pageoffice/server.aspx";
    PageOfficeCtrl1.WebOpen("doc/test.xls", PageOffice.OpenModeType.xlsNormalEdit, "操作人姓名");

ASP.NET读取操作(savedata.aspx页面或action方法),获取Excel提交的数据:

	PageOffice.ExcelReader.Workbook workBook = new PageOffice.ExcelReader.Workbook();
    PageOffice.ExcelReader.Sheet sheet = workBook.OpenSheet("Sheet1");
    PageOffice.ExcelReader.Table table = sheet.OpenTable("B4:F13");
    while (!table.EOF)
    {
        //获取提交的数值,DataFields.Count标识的是提交过来的table的列数
        if (!table.DataFields.IsEmpty)
        {
            string valueB = table.DataFields[0].Text;
            string valueC = table.DataFields[1].Text;
            string valueD = table.DataFields[2].Text;
            string valueE = table.DataFields[3].Text;
            string valueF = table.DataFields[4].Text;
            // 处理获取到的数据,比如保存到数据库中
            ……
        }
        table.NextRow();//循环进入下一行
    }
    table.Close();
    workBook.Close();