当前位置:编程学习 > JAVA >>

jxl读取多个sheet问题

各位高手 
   我有一个excel表格 里面有多个sheet 没个sheet格式不一样 我想读取怎么做啊  --------------------编程问答-------------------- 有知道的吗 --------------------编程问答-------------------- jxl 循环每个sheet呗
--------------------编程问答--------------------
import java.io.File;
import java.util.HashMap;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class Xls {
public static void main(String args[]) {
try {
Workbook book = Workbook.getWorkbook(new File("D:\\aa.xls"));
// 获得第一个工作表对象
Sheet sheet = book.getSheet(0);
// 得到第一列第一行的单元格
// System.out.println(sheet.getColumns());//获得列数
// System.out.println(sheet.getRows());//获得行数
// Cell cell1 = sheet.getCell(0, 0);//获得第一行第一列的cell
// System.out.println(cell1.getContents());//获得cell中的内容
// List<CellBean> lc = new ArrayList<CellBean>();
HashMap<String, String> m = new HashMap<String, String>();
for (int i = 0; i < sheet.getRows(); i++) {
for (int j = 0; j < sheet.getColumns(); j++) {
Cell cell = sheet.getCell(j, i);
m.put(i + "" + j, cell.getContents());
System.out.println("j:" + j + " i:" + i + " cell:"
+ cell.getContents());
}
}

// 打开文件
WritableWorkbook wb = Workbook.createWorkbook(new File(
"D:\\new.xls"));
// 生成名为“Sheet1”的工作表,参数0表示这是第一页
WritableSheet ws = wb.createSheet("Sheet1", 0);
// //在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
// //以及单元格内容为test
// Label label=new Label(0,0,"test");
// //将定义好的单元格添加到工作表中
// ws.addCell(label);
// /*生成一个保存数字的单元格
// 必须使用Number的完整包路径,否则有语法歧义
// 单元格位置是第二列,第一行,值为789.123*/
// jxl.write.Number number = new jxl.write.Number(1,0,789.123);
// ws.addCell(number);
for (int i = 0; i < sheet.getRows(); i++) {
for (int j = 0; j < sheet.getColumns(); j++) {
ws.addCell(new Label(j, i, m.get(i + "" + j)));
}
}
// 写入数据并关闭文件
book.close();
wb.write();
wb.close();
System.out.println("create ok!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
--------------------编程问答-------------------- 这就是用面向对象来取消switch判断的应用啊

可以写一个读取固定格式数据的接口,比如public List<Map> getDate(Sheet);

然后对于每种sheet定义个reader实现这个接口,
然后的事情...哗~~世界清静了

good luck --------------------编程问答-------------------- --------------------编程问答-------------------- 就是一般的读取 参阅3楼 --------------------编程问答-------------------- 把每个sheet名称定义好 在程序里循环获取sheet判断名称 用不同的流程处理 --------------------编程问答--------------------
引用 3 楼 cw_tkong 的回复:
Java code
import java.io.File;
import java.util.HashMap;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.Writab……


http://blog.csdn.net/fei1502816/article/details/6957191
我博客有个例子,你可以去看看,挺全的 --------------------编程问答-------------------- 三楼正解!
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,