关于中国移动导出Excel的实现的有关问题
关于中国移动导出Excel的实现的问题:
办理移动的话费
点了查询之后:
显示出如上所示的 url
可以看出是执行了 qryDetailList.action
这个页面是没有分页的,所以页面很长很长。。。
上面就是一个按钮:html代码如下:
这个导出Excel 执行的就是 generateDetailExcel.action 这个action
找了下资料 :
jxl
poi
ireport
貌似都可以解决,由于项目时间紧、所以一个个的试貌似也范不着了。
想问下: 本人项目中导出/导入的部分还是非常多的,是一个小的系统,
问下,有经验的同学,哪种适合我?
------解决方案--------------------
我只用过poi
不过很简单 - - 。 网上搜个例子就可以用了!
------解决方案--------------------
poi吧,蛮简单的....
------解决方案--------------------
windows平台的服务器 能用 jacob的
其他的平台 就poi了
------解决方案--------------------
曾经写过POI来导入导出,感觉还是挺方便的。
------解决方案--------------------
POI和JXL比较常见,用的比较多的还是JLX,两个的功能上不相上下,至于兼容性吗,如3楼,不知道JXL在其他非windows系统上如何。
------解决方案--------------------
给你个我自己写的很简单的例子,仅供参考。。用jxl的
- HTML code
http://service.hb.10086.cn/ecare/qryDetailList.action
办理移动的话费
点了查询之后:
显示出如上所示的 url
可以看出是执行了 qryDetailList.action
这个页面是没有分页的,所以页面很长很长。。。
上面就是一个按钮:html代码如下:
- HTML code
<input class="btn_text4" type="button" onclick="exportDetailExcel();" value="导出EXCEL">
这个导出Excel 执行的就是 generateDetailExcel.action 这个action
找了下资料 :
jxl
poi
ireport
貌似都可以解决,由于项目时间紧、所以一个个的试貌似也范不着了。
想问下: 本人项目中导出/导入的部分还是非常多的,是一个小的系统,
问下,有经验的同学,哪种适合我?
------解决方案--------------------
我只用过poi
不过很简单 - - 。 网上搜个例子就可以用了!
------解决方案--------------------
poi吧,蛮简单的....
------解决方案--------------------
windows平台的服务器 能用 jacob的
其他的平台 就poi了
------解决方案--------------------
曾经写过POI来导入导出,感觉还是挺方便的。
------解决方案--------------------
POI和JXL比较常见,用的比较多的还是JLX,两个的功能上不相上下,至于兼容性吗,如3楼,不知道JXL在其他非windows系统上如何。
------解决方案--------------------
给你个我自己写的很简单的例子,仅供参考。。用jxl的
- Java code
package jxl; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.OutputStream; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; public class JxlExcelWriter { /** * @param out 输出excel文件. * @param br 输入txt文件. */ public void writeExcel(OutputStream out, BufferedReader br) { if(br == null) { throw new IllegalArgumentException("写excel流需要file!"); } try { int rowNum = 0; // 写入行数 int sheetNum = 1; // 写入sheet编号 WritableWorkbook workbook = Workbook.createWorkbook(out); WritableSheet ws = workbook.createSheet("sheet " + sheetNum, 0); //文件行数 String line = null; while((line = br.readLine()) != null){ String[] data = line.split("\t"); putRow(ws, rowNum, data); // 写一行到sheet rowNum++; if(rowNum > 10000){ rowNum = 0; sheetNum++; ws = workbook.createSheet("sheet " + sheetNum, 0); } } workbook.write(); workbook.close(); // 关闭、保存Excel System.out.print("success!"); } catch (RowsExceededException e) { System.out.println("jxl write RowsExceededException: "+e.getMessage()); } catch (WriteException e) { System.out.println("jxl write WriteException: "+e.getMessage()); } catch (IOException e) { System.out.println("jxl write file i/o exception!, cause by: "+e.getMessage()); } } private void putRow(WritableSheet ws, int rowNum, String[] data) throws RowsExceededException, WriteException { for(int i=0; i<data.length; i++) { Label cell = new Label(i, rowNum, ""+data[i]); ws.addCell(cell); } } public static void main(String args[]) { try { BufferedReader br = new BufferedReader(new FileReader("e:/input/data.txt")); OutputStream out = new FileOutputStream(new File("e:/out/test.xls")); JxlExcelWriter jxlExcelWriter = new JxlExcelWriter(); jxlExcelWriter.writeExcel(out, br); out.close(); br.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }