• Poi 生成xls


    来首小诗:

        今日不胜昨日寒,我却把那拖鞋穿,脚儿冰冰秋风瑟,抬头一看碧蓝天。         ---泥沙砖瓦浆木匠

    项目需求:

      p2p项目中,需要一些数据报表一xls的格式,提供下载。并给主管签名。

    方案:

    ------------------------

      poi 3.9

    ------------------------

    第一步学习:

    了解poi:

      

    Apache POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。目前POI已经有了Ruby版本。

    结构:

    • HSSF - 提供读写Microsoft Excel XLS格式档案的功能。
    • XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。
    • HWPF - 提供读写Microsoft Word DOC格式档案的功能。
    • HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
    • HDGF - 提供读Microsoft Visio格式档案的功能。
    • HPBF - 提供读Microsoft Publisher格式档案的功能。
    • HSMF - 提供读Microsoft Outlook格式档案的功能。

    我需要的就是hssf。

    poi3.9这里我分享下

    链接: http://pan.baidu.com/s/1EHymz 密码: f94c

    第二步学习:

    清单1.定义新的xls里面工作簿和一个sheet页

    Workbook wb = new HSSFWorkbook();                                    //定义一个新的工作簿

    Sheet sheet1= wb.createSheet("满标复审模板"); //定义第一个sheet页

    清单2.创建一个文件流,并输出一个xls

    wb.write(fos);    //  Workbook   将流写进工作簿
    FileOutputStream fos = new FileOutputStream("D://测试.xls");          //输出一个新的xls
    wb.write(fos);
    fos.close();

    做了前两个,main里面运行就生成了一个xls

    清单3.创建行,单元格-->并赋值  

    Row row = sheet1.createRow(0);                                        //为第一个sheet页创建标题
    Cell cell = row.createCell(column);                                   //为相应行创建一个单元格
    cell.setCellValue("借款标满标确认单");

      并注意,这些写在清单1,2之间。

     

    第三步学习:

      鄙人自己想了想,然后学习下,觉得

        1.字体font,单元style归一类

        2.赋值,合并单元格归一类

    在一个sheet页里面,

        step1.创建内容

        /**创建 制单人--制单编号**/
            Row row1 = sheet1.createRow(1);                                        
            setRowOfFourSecondTitle(wb, sheet, row1,1,"制单人:",
                    "Li","制单编号:","20131115");    

        step2.进入setRowOfFourSecondTitle

    /**
    * 创建 制单人--制单编号
    * @param workbook
    * @param sheet
    * @param row
    * @param column
    * @param valString1 //列1的值
    * @param valString2 //列2的值
    * @param changeString1 //列3的值--填入值
    * @param changeString2 //列4的值--填入值
    */

    private static void setRowOfFourSecondTitle(Workbook workbook,Sheet sheet,Row row,
                int column,String valString1,String changeString1 ,String valString2,String changeString2) {
            row.setHeightInPoints(40);                                               //行高度
            sheet.setDefaultColumnWidth(30);                                        //设置列的宽度
                
            Cell cel0 = row.createCell(0);                                            //为相应行创建列1 单元格
            cel0.setCellValue(valString1);        
            cel0.setCellStyle(getCellStyleOfOne(workbook));
            
            Cell cell2 = row.createCell(2);                                            //为相应行创建列3单元格
            cell2.setCellValue(valString2);
            cell2.setCellStyle(getCellStyleOfOne(workbook));
            
            
            Cell cell1 = row.createCell(1);                                            //为相应行创建列2单元格
            cell1.setCellValue(changeString1);
            cell1.setCellStyle(getCellStyleOfTwo(workbook));
            
            Cell cell3 = row.createCell(3);
            cell3.setCellValue(changeString2);
            cell3.setCellStyle(getCellStyleOfTwo(workbook));
        }

          step3.由于单元格的里面样式不同

    --------------------------------------------

        getCellStyleOfTwo 其一

        getCellStyleOfOne 其二
    ------------------------------------------

    举其中的一个例子:

    其一

    /**
    * 制单人--制单编号 对应样式
    * @param workbook
    * @return 制单人--制单编号 对应样式
    */

    private static CellStyle getCellStyleOfOne(Workbook workbook) {
            CellStyle style1 = workbook.createCellStyle();                            // 样式对象    
            style1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);                // 垂直    
            style1.setAlignment(HSSFCellStyle.ALIGN_RIGHT);                            // 水平   
               
            Font font1=workbook.createFont();
            font1.setColor(HSSFColor.BLACK.index);                                    //字体颜色
            font1.setFontHeightInPoints((short)10);                                    //字体大小
            font1.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);                            //字体增粗
            
            style1.setFont(font1);
            return style1;
        }

    第四步学习:

    www.baidu.com 文档学习。

    总结:

      poi操作xls挺简单的,应用那块也有推荐。可以找找视频学习。主要是一些接口的熟悉。

  • 相关阅读:
    Android Studio的git功能的使用介绍
    如何用Android Studio同时使用SVN和Git管理项目
    【.NET深呼吸】动态类型(扩充篇)
    【.net深呼吸】动态类型(高级篇)
    【.net深呼吸】动态类型(娱乐篇)
    VS 2015相当不错的功能:C#交互窗口
    计算照片的面积(WPF篇)
    计算照片的面积(UWP篇)
    【Win 10应用开发】把文件嵌入到XML文档
    【.NET深呼吸】基础:自定义类型转换
  • 原文地址:https://www.cnblogs.com/Alandre/p/3426815.html
Copyright © 2020-2023  润新知