前不久,自己写了一个Jxl读取Excel文件的,支持多张sheet的结构。
要使用,自己去下载jxl这个jar包,具体的作用在文件中有说明。
package lzb.utls.io;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.WorkbookSettings;
/**
* Jxl目前只支持Excel 2003版本
* 支持Excel的多表读数据
* @author lizhenbin
*
*/
public class JxlUtil {
/**
* 读取路径下的Excel文件
* @param excelfilePath 文件路径
* @return Excel的全部信息包装再一个list
* @throws Exception
*/
public static List<String> readExcel(String excelfilePath) throws Exception {
InputStream ins = new FileInputStream(excelfilePath); //读取xls文件
WorkbookSettings setEncode = new WorkbookSettings(); //设置读文件编码
setEncode.setEncoding("GBK");
Workbook rwb = Workbook.getWorkbook(ins, setEncode);
List<String> alldata = new ArrayList<String>();
alldata.clear();
Sheet[] sheets=rwb.getSheets();//获得当前Excel表共有几个sheet
int pages = sheets.length; //获得表数
//将excel表中的数据读取出来
//在从Excel中读取数据的时候不需要知道每个sheet有几行,有那多少列
for(int i=0; i<pages; i++) {
Sheet sheet = rwb.getSheet(i);
int cols = sheet.getColumns(); //列
for(int j=0; j<cols; j++) {
Cell excelColumn = sheet.getCell(j, 0);
String strColumn = excelColumn.getContents(); //获得列信息
alldata.add(strColumn);
}
//读取每一行对应的列数目
//循环读取每一行的全部列数目的内容
int rows = sheet.getRows(); //行
for(int r=1; r<rows; r++) { //行循环,Excel的行列是从(0,0)开始
for(int c=0; c<cols; c++) { //列循
Cell excelRows = sheet.getCell(c, r);
String strRow = excelRows.getContents();
alldata.add(strRow);
}
}
}
ins.close();
return alldata;
}
/**
* 获取Excel列数List
* @param excelfilePath
* @return
* @throws Exception
*/
public List<Integer> getCols(String excelfilePath) throws Exception {
List<Integer> colslist = new ArrayList<Integer>();
InputStream ins = new FileInputStream(excelfilePath); //读取xls文件
WorkbookSettings setEncode = new WorkbookSettings(); //设置读文件编码
setEncode.setEncoding("GBK");
Workbook rwb = Workbook.getWorkbook(ins, setEncode);
Sheet[] sheets = rwb.getSheets();//获得当前Excel表共有几个sheet
int pages = sheets.length; //获得表数
for(int i=0; i<pages; i++) {
Sheet sheet = rwb.getSheet(i);
colslist.add(sheet.getColumns()); //列
}
ins.close();
return colslist;
}
/**
* 获取Excel行数List
* @param excelfilePath
* @return
* @throws Exception
*/
public List<Integer> getRows(String excelfilePath) throws Exception {
List<Integer> rowslist = new ArrayList<Integer>();
InputStream ins = new FileInputStream(excelfilePath); //读取xls文件
WorkbookSettings setEncode = new WorkbookSettings(); //设置读文件编码
setEncode.setEncoding("GBK");
Workbook rwb = Workbook.getWorkbook(ins, setEncode);
Sheet[] sheets = rwb.getSheets();//获得当前Excel表共有几个sheet
int pages = sheets.length; //获得表数
for(int i=0; i<pages; i++) {
Sheet sheet = rwb.getSheet(i);
rowslist.add(sheet.getRows()); //行
}
ins.close();
return rowslist;
}
}
后面的用Jxl构建一张Excel的表格时候,我总是跳不出要传一个实实在在POJO过来的想法,现在还在构思之中,亲各位高手指正。
分享到:
相关推荐
java利用jxl.jar包读取excel文件
NULL 博文链接:https://zhouyq.iteye.com/blog/272883
dom4j是一套非常优秀的java开源api,主要用于读写xml文档,具有性能优异、功能强大、和非常方便使用的特点。 另外xml经常用于数据交换的载体,像调用webservice传递的参数,以及数据做同步操作等等, 所以使用dom4j...
JAVA利用jxl读取Excel所需jar。 JAVA可以利用jxl简单快速的读取excel文件的内容。由于版本限制,只能读取97-03 xls格式的Excel。
java读取Excel文件-jxl附件列表: ReadAndWriteExcel.java (5.52 KB) jxl.jar (688.03 KB) jxl读Excel文件.doc (88.50 KB)
操作Excel文件(读取和生成)jxl和poi 详细实例
jxl.jar包,以及网络读取Excel文件流所需jar包commons_fileupload,commons_io
一个读取Excel文档,将数据存入map集合的方法
包括POI和JXL两种方法读取EXCEL数据的工具类(传入文件或者文件路径直接调用)以及所需要的jar包
JXL(Java操作Excel文件Oracle数据库)
用jxl实现的读取excel文件,生成相应的对象集合。对于读取html格式的excel文件抛出的BiffException异常做了相应的处理
poi包括三种常用jar包,各自支持的格式在文件名里表示出来了。jxl相对操作容易但是功能简单,poi操作复杂但是功能更强大,具体用哪个看自己吧。另外poi还支持对PPT,WORD等文件的支持。。
jxl java读取、插入、删除、更新excel文件源代码 欢迎下载
Android读取Excel需要的jxl.jar文件,需要的可以下载使用。
java用 jxl 读取excel文件。。。。。。。
通过Jxl与poi读取和写入excel文件,并且区分2007和2003版的excel格式
excel生成,与excel的读取
jxlapi和jar包 博文链接:https://dhl004.iteye.com/blog/1324644
java读取excel必备jar包 付此jar包读取excel范例txt文件 整体打包为RAR格式 一起学习哈