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。