java读取excel某个单元格的值-ag凯发k8国际
目前网上能找到的读取excel表格中数据的两种比较好的方案:pageoffice好用开发效率高;poi免费。供大家参考,针对具体情况选择具体方案。
1. pageoffice读取excel
import com.zhuozhengsoft.pageoffice.*;
import com.zhuozhengsoft.pageoffice.excelreader.*;
//读取excel单元格数据
workbook workbook = new workbook(request, response);
sheet sheet = workbook.opensheet("sheet1");
table table = sheet.opentable("a1:f5");while (!table.geteof()) {
//获取提交的数值
if (!table.getdatafields().getisempty()) {
for(int i=0; i<6; i ){
string content = table.getdatafields().get(i).gettext();
system.out.println(content);//输出单元格数据
}
}
//循环进入下一行
table.nextrow();
}
table.close();
workbook.close();
这些代码只是在服务器端接收客户端提交的excel单元格数据,pageoffice真正的读取单元格数据工作是在客户端执行的,由于服务器端并没有对excel文件做任何读取操作,只接受一下数据就行,无需耗费大量资源去处理文件,也无需处理多个客户并发请求的问题,因为每个客户端都各自读取自己的数据,服务器端只接收数据保存到数据库。
2. poi读取excel
package com.test.poi;
import java.io.fileinputstream;
import java.io.ioexception;
import java.io.inputstream;
import java.util.iterator;
import org.apache.poi.hssf.extractor.excelextractor;
import org.apache.poi.hssf.usermodel.hssfcell;
import org.apache.poi.hssf.usermodel.hssfrow;
import org.apache.poi.hssf.usermodel.hssfsheet;
import org.apache.poi.hssf.usermodel.hssfworkbook;
import org.apache.poi.poifs.filesystem.poifsfilesystem;
import org.apache.poi.ss.usermodel.cell;
import org.apache.poi.ss.usermodel.row;
public class readexcel {
public static void main(string[] args) throws exception {
hssfworkbook wb = null;
poifsfilesystem fs = null;
try {
fs = new poifsfilesystem(new fileinputstream("e:\\workbook.xls"));
wb = new hssfworkbook(fs);
} catch (ioexception e) {
e.printstacktrace();
}
hssfsheet sheet = wb.getsheetat(0);
hssfrow row = sheet.getrow(0);
hssfcell cell = row.getcell(0);
string msg = cell.getstringcellvalue();
system.out.println(msg);
}
public static void method2() throws exception {
inputstream is = new fileinputstream("e:\\workbook.xls");
hssfworkbook wb = new hssfworkbook(new poifsfilesystem(is));
excelextractor extractor = new excelextractor(wb);
extractor.setincludesheetnames(false);
extractor.setformulasnotresults(false);
extractor.setincludecellcomments(true);
string text = extractor.gettext();
system.out.println(text);
}
public static void method3() throws exception {
hssfworkbook wb = new hssfworkbook(new fileinputstream("e:\\workbook.xls"));
hssfsheet sheet = wb.getsheetat(0);
for (iterator iter = (iterator) sheet.rowiterator(); iter.hasnext();) {
row row = iter.next();
for (iterator iter2 = (iterator) row.celliterator(); iter2.hasnext();) {
cell cell = iter2.next();
string content = cell.getstringcellvalue();// 除非是sring类型,否则这样迭代读取会有错误
system.out.println(content);
}
}
}
}
注意:hssfworkbook,xssfworkbook的区别:前者是解析出来excel 2007 以前版本的,后缀名为xls的,后者是解析excel 2007 版的,后缀名为xlsx。需要针对不同的excel版本编写不同的程序,判断该用哪个workbook来对其进行解析处理,而且通常需要开发人员自己把这些方法都做相应封装,使其更面向对象,工作量有点大,还有就是要求开发高质量代码,因为是在服务器上执行的,必须解决多个客户同时请求的并发问题,和万一程序执行异常的处理问题,上例只是main方法的简单示例而已,仅供参考!
总结
以上是ag凯发k8国际为你收集整理的java读取excel某个单元格的值_[转载]java读取excel中的单元格数据的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: