java利用jxl操作Excel

半世苍凉 提交于 2020-03-24 09:08:41
/**
     * 把从数据库查询到的数据,写入电子表格
     * 
     * @throws Exception
     */
    public void createXls() throws Exception {

        Dao dao = new Dao();
        List<Inf> list = dao.getList();//得到数据
        
        /*****************************************************/
        OutputStream out = new FileOutputStream("e:/数据报表.xls");//产生输出流,用于输出文件 
        
        //工作簿
        WritableWorkbook wb = Workbook.createWorkbook(out);//它输出的内容,将会输出到out流对应的文件中        
        
        //利用wb产生一张工作表
        WritableSheet st = wb.createSheet("我的工作表",0);//产生工作表,它是工作簿中的第1张表
        
        //产生label,它就是显示x行x列的数据
        Label idLabel = new Label(0,0,"编号");
        Label nameLabel = new Label(1,0,"姓名");
        Label ageLabel = new Label(2,0,"年龄");
        
        //把label添加到对应的位置
        st.addCell(idLabel);
        st.addCell(nameLabel);
        st.addCell(ageLabel);
        
        for(int i=0;i<list.size();i++){
            Inf f = list.get(i);//取得集合中的每一个对象
            Label id = new Label(0,i+1,f.getId().toString());
            Label name = new Label(1,i+1,f.getName());
            Label age = new Label(2,i+1,f.getAge().toString());
            
            st.addCell(id);
            st.addCell(name);
            st.addCell(age);
        }
    
        
        //输出工作簿
        wb.write();
        wb.close();
        out.close();


数据:

/**
     * 从数据库中查询
     * @return
     */
    public List<Inf> getList(){
        List<Inf> list= new ArrayList<Inf>();
        
        list.add(new Inf(1,"jack",23));
        list.add(new Inf(2,"tom",25));
        list.add(new Inf(3,"bruce",22));
        
        return list;
    }

 

 

jxl读取Excel

/**
     * 把电子表格中的数据,读入到程序中
     */
    public void readXls() throws Exception {

        // 1、用输入流读取文件
        InputStream in = new FileInputStream("c:/数据报表.xls");

        // 2、根据输入流中的信息,得到电子表格文档--------工作簿
        Workbook wb = Workbook.getWorkbook(in);

        // int sheets = wb.getNumberOfSheets();//得到当前工作簿包含几张表
        Sheet st = wb.getSheet(0);// 取得工作簿中的第一张表

        // 3、取得电子表格的总行数
        int rows = st.getRows();

        // 4、取得电子表格的总列数
        int columns = st.getColumns();

        System.out.println("编号\t名称\t价格");

        for (int i = 1; i < rows; i++) {// 循环每一行
            for (int j = 0; j < columns; j++) { // 循环每一列
                Cell c = st.getCell(j, i);
                System.out.print(c.getContents() + "\t");
            }
            System.out.println("");
        }
        in.close();

    }

 

jxl的jar包:jxl.jar

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!