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

hyfsoft 2018-09-20

在实际的开发过程中,经常会遇到提取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。

相关推荐