• JAVA使用POI操作excel


    文中处理的excel是2003年以前的版本,使用HSSFworkbook,如果处理2007版本以后的excel,用XSSFworkbook,对于二者的兼容性问题,可参考

    http://blog.csdn.net/mmm333zzz/article/details/7962377

    poi组件中常用的类有HSSFworkbook表示一个完整的excel表格,HSSFsheet表示excel中的一个工作薄,HSSFRow表示工作薄中的一行,HSSFCell表示一个单元格

    下面是一个简单的写入的demo

    public static void main(String [] args){
            try {
                HSSFWorkbook workbook= new HSSFWorkbook();
                HSSFSheet sheet= workbook.createSheet("test");
                HSSFRow row = sheet.createRow(1);
                HSSFCell cell= row.createCell(2);
                cell.setCellValue("test");
                FileOutputStream os= null;
                os = new FileOutputStream("fisrtExcel.xls");
                workbook.write(os);
                os.flush();
                os.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            System.out.println("ok");
        }

    下面是一个简单的读取demo

    try {
                FileInputStream file= new FileInputStream("fisrtExcel.xls");
                POIFSFileSystem ts= new POIFSFileSystem(file);
                HSSFWorkbook wb=new HSSFWorkbook(ts);
                HSSFSheet sh= wb.getSheetAt(0);
                HSSFRow ro=null;
                for (int i = 0; sh.getRow(i)!=null; i++) {
                    ro=sh.getRow(i);
                    for (int j = 0; ro.getCell(j)!=null; j++) {
                        System.out.print(ro.getCell(j)+"");
                    }
                    System.out.println();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            System.out.println("ok");

    下面是几个常用的api

    //使用公式
        cell2.setCellFormula("B2");
        //设置列宽
        sheet.setColumnWidth(columnIndex, width);
        //设置行高
        row.setHeight(height);
        //设这样式:
        HSSFFont font= workbook.createFont();
        font.setFontHeightInPoints(height);
        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        font.setFontName("黑体");
        HSSFCellStyle style= workbook.createCellStyle();
        style.setFont(font);
        //style可以设置对齐样式,边框,和格式化日期。
        cell.setCellStyle(style);
        //合并单元格
        sheet.addMergedRegion(region);

    我们之前提到了一个jxl的使用。当时在网上也找到了一个使用的demo,可以参考这里:

    public static void main(String [] args){
            try {
                WritableWorkbook wwb = null;
                //首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
                wwb = Workbook.createWorkbook(new File("jxlexcel"));
                if(wwb!=null){
                    //创建一个可写入的工作表
                    WritableSheet ws = wwb.createSheet("sheet1", 0);
                    for(inti=0;i<10;i++){
                        for(intj=0;j<5;j++){
                            Label labelC = new Label(j, i, "这是第"+(i+1)+"行,第"+(j+1)+"列");
                            ws.addCell(labelC);
                        }
                    }
                    wwb.write();
                    wwb.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            System.out.println("ok");
        }

    对于更复杂的内容这里有几个参考文档:

    http://www.newxing.com/Tech/Java/Web/Excel_186.html

    http://www.yesky.com/18/1886018.shtml

    总结一下,poi的使用比较简单,主要是写入和读取的时候计算好读取的位置。而且现在项目中已经封装了一个现成的类,几乎几行代码就可以把结果输出到一个excel中并提供下载

  • 相关阅读:
    AngularJS----基本操作
    AngularJS------认识AngularJS
    利用JsonConvert.SerializeObject()实现类对象的json化
    数据结构(C语言第2版)-----数组,广义表,树,图
    数据结构(c语言第2版)-----了解链表,栈,队列,串
    php 获取开始日期与结束日期之间所有日期
    城市列表取汉字的第一个字的首字母并排序功能
    php订单号的生成
    PHP代码中出现中文乱码怎么办?
    PHP开发丨3个简单的方法处理emoji表情
  • 原文地址:https://www.cnblogs.com/zhangshitong/p/6114504.html
Copyright © 2020-2023  润新知