当前位置: 代码迷 >> J2EE >> 关于中国移动导出Excel的实现的有关问题
  详细解决方案

关于中国移动导出Excel的实现的有关问题

热度:49   发布时间:2016-04-22 01:57:11.0
关于中国移动导出Excel的实现的问题:
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();        }            }}
  相关解决方案