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

pageoffice---读取Excel文档中的数据

程序员文章站 2022-05-30 15:33:47
...

在实际的开发过程中,经常会遇到提取Excel文档中数据保存到数据库中的需求,PageOffice对此也提供了很好的解决方案。

客户端在线打开Excel文件,保存的时候,PageOffice可以打包Excel文档中的指定单元格的数据或所有的数据提交到服务器端,在服务器端创建PageOffice的ExcelReader命名空间中的Workbook对象,就可以获取到Excel单元格中的值了。

请参考PageOffice产品开发包中Samples4示例的演示:
一、14、最简单的提交Excel中的用户输入内容

Java代码:

    Workbook workBook = new Workbook(request, response);
	Sheet sheet = workBook.openSheet("Sheet1");
	Table table = sheet.openTable("A1:F5");
	String content = "";
	int row = 1;
	while (!table.getEOF()) {
		//获取提交的数值
		if (!table.getDataFields().getIsEmpty()) {
			content += "A"+String.valueOf(row)+":"+ table.getDataFields().get(0).getText();
			content += "B"+String.valueOf(row)+":"+ table.getDataFields().get(1).getText();
			content += "C"+String.valueOf(row)+":"+ table.getDataFields().get(2).getText();
			content += "D"+String.valueOf(row)+":"+ table.getDataFields().get(3).getText();
			content += "E"+String.valueOf(row)+":"+ table.getDataFields().get(4).getText();
			content += "F"+String.valueOf(row)+":"+ table.getDataFields().get(5).getText();
			System.out.println(content); //输出一行的数据
            
            row++;
		    table.nextRow();//循环进入下一行
		}
		
	}
	table.close();
	workBook.close();

ASP.NET代码:

    PageOffice.ExcelReader.Workbook workBook = new PageOffice.ExcelReader.Workbook();
    PageOffice.ExcelReader.Sheet sheet = workBook.OpenSheet("Sheet1");
    PageOffice.ExcelReader.Table table = sheet.OpenTable("A1:F5");
    string content = "";
	int row = 1;
    while (!table.EOF)
    {
        //获取提交的数据
        if (!table.DataFields.IsEmpty)
        {
            content += "A"+ row.ToString()+":"+ table.DataFields[0].Text;
            content += "B"+ row.ToString()+":"+ table.DataFields[1].Text;
            content += "C"+ row.ToString()+":"+ table.DataFields[2].Text;
            content += "D"+ row.ToString()+":"+ table.DataFields[3].Text;
            content += "E"+ row.ToString()+":"+ table.DataFields[4].Text;
            content += "F"+ row.ToString()+":"+ table.DataFields[5].Text;
			Response.Write(content); //输出一行的数据
            
            row++;
            table.NextRow();//循环进入下一行
        }
    }
    table.Close();
    workBook.Close();

与POI和SharePoint的区别

  • POI和SharePoint读取文件中数据的工作都是在服务器端执行的,需要耗费大量服务器资源去处理,还需要处理多个客户并发请求的问题;PageOffice真正的读取单元格数据工作是在客户端执行的,服务器端这些对象只接受一下数据就行,因为每个客户端都各自读取自己的数据,服务器端只接收数据保存到数据库,所以编程实现比较简单。
  • POI需要针对xls和xlsx两种格式的文件编写不同的程序,工作量翻倍。HSSFWorkbook是解析出来excel 2007 以前版本的,后缀名为xls的,XSSFWorkbook是解析excel 2007 版的,后缀名为xlsx。