博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java操作Excel之POI(1)
阅读量:6759 次
发布时间:2019-06-26

本文共 4628 字,大约阅读时间需要 15 分钟。

一、新建工作簿、sheet、单元格

1 public static void main(String[] args) throws Exception { 2         Workbook wb = new HSSFWorkbook();    //定义一个新的工作簿 3         Sheet sheet = wb.createSheet("第一个sheet页"); 4         wb.createSheet("第二个sheet页"); 5         Row row = sheet.createRow(0);                //创建第0行 6         Cell cell = row.createCell(0);                //创建一个单元格,第0行,第1列 7         cell.setCellValue(1);                         //给单元格设置值 8         row.createCell(1).setCellValue(1.2);        //第2列 9         row.createCell(2).setCellValue("这是一个字符串");10         row.createCell(3).setCellValue(false);11         FileOutputStream fileOut = new FileOutputStream("E:\\用POI搞出来的工作簿3.xls");12         wb.write(fileOut);13         fileOut.close();14     }

效果图:

 

 

二、创建一个时间格式的单元格:

1 public static void main(String[] args) throws Exception { 2         Workbook wb = new HSSFWorkbook();    //定义一个新的工作簿 3         Sheet sheet = wb.createSheet("第一个sheet页"); 4         wb.createSheet("第二个sheet页"); 5         Row row = sheet.createRow(0);                //创建第0行 6         Cell cell = row.createCell(0);                //创建一个单元格,第0行,第1列 7         cell.setCellValue(new Date()); 8          9         CreationHelper creationHelper = wb.getCreationHelper();    10         CellStyle cellStyle = wb.createCellStyle();11         //设置单元格时间格式12         cellStyle.setDataFormat(creationHelper.createDataFormat().getFormat("yyyy-mm-dd hh:mm:ss"));13         cell = row.createCell(1);                    //第2列14         cell.setCellValue(new Date());15         cell.setCellStyle(cellStyle);16         17         cell = row.createCell(2);                    //第3列18         cell.setCellValue(Calendar.getInstance());19         cell.setCellStyle(cellStyle);20         21         FileOutputStream fileOut = new FileOutputStream("E:\\工作簿.xls");22         wb.write(fileOut);23         fileOut.close();24     }

效果:

 

三、创建不同格式的单元格:

/**     * 创建不同格式的单元格     */    public static void main(String[] args) throws Exception {        Workbook wb = new HSSFWorkbook();    //定义一个新的工作簿        Sheet sheet = wb.createSheet("第一个sheet页");        Row row = sheet.createRow(0);        //第一行        row.createCell(0).setCellValue(new Date());    //第1列        row.createCell(1).setCellValue(1);        row.createCell(2).setCellValue("一个字符串");        row.createCell(3).setCellValue(true);        row.createCell(4).setCellValue(HSSFCell.CELL_TYPE_NUMERIC);        row.createCell(5).setCellValue(false);                FileOutputStream fileOut = new FileOutputStream("E:\\工作簿2.xls");        wb.write(fileOut);        fileOut.close();    }

 

三、遍历一个工作簿:

1 /** 2      * 遍历一个工作簿 3      */ 4     public static void main(String[] args) throws Exception { 5         InputStream is = new FileInputStream("E:\\二货.xls"); 6         POIFSFileSystem ps = new POIFSFileSystem(is); 7         HSSFWorkbook wb = new HSSFWorkbook(ps); 8         HSSFSheet hssfSheet = wb.getSheetAt(0);  //获取第一个sheet页 9         if(hssfSheet == null){10             return;11         }12         //遍历row13         for(int rowNum=0; rowNum<=hssfSheet.getLastRowNum(); rowNum++){14             HSSFRow hssfRow = hssfSheet.getRow(rowNum);15             if(hssfRow == null){16                 continue;17             }18             //遍历行19             for(int cellNum=0; cellNum<=hssfRow.getLastCellNum(); cellNum++){20                 HSSFCell hssfCell = hssfRow.getCell(cellNum);21                 if(hssfCell == null){22                     continue;23                 }24                 System.out.print(getValue(hssfCell) + "  ");25             }26             27             System.out.println();28         }29         30         is.close();31     }32     33     private static String getValue(HSSFCell hssfCell){34         if(hssfCell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN){35             return String.valueOf(hssfCell.getBooleanCellValue());36         }else if(hssfCell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC){37             return String.valueOf(hssfCell.getNumericCellValue());38         }else{39             return String.valueOf(hssfCell.getStringCellValue());40         }41     }

 

四、提取文本:

1 /** 2      * 提取文本 3      */ 4     public static void main(String[] args) throws Exception { 5         InputStream is = new FileInputStream("E:\\二货.xls"); 6         POIFSFileSystem ps = new POIFSFileSystem(is); 7         HSSFWorkbook wb = new HSSFWorkbook(ps); 8          9         ExcelExtractor excelExtractor = new ExcelExtractor(wb);10         excelExtractor.setIncludeSheetNames(false); //不需要sheet页的名字11         System.out.println(excelExtractor.getText());12     }

 

转载于:https://www.cnblogs.com/tenWood/p/6421774.html

你可能感兴趣的文章
兼容IE,Firefox,CSS3 opacity透明度
查看>>
读取Hive中所有表的表结构,并在新Hive库中创建表,索引等
查看>>
XenServer部署系列之02——系统安装及许可
查看>>
linux下FTP服务器搭建
查看>>
程序的查询 ps - 笔记1
查看>>
Conversion to Dalvik format failed with error 1的又一种情形
查看>>
nodejs抓取数据二(列表解析)
查看>>
TextView中实现可点击链接的显示
查看>>
HAOI 树上操作
查看>>
深刻理解Python中的元类(metaclass)以及元类实现单例模式
查看>>
java随机生成n个不相同的整数
查看>>
DIV+CSS基础
查看>>
使用JS完成首页定时弹出广告图片
查看>>
codeforces 500c New Year Book Reading 【思维】
查看>>
Auto reloading enabled
查看>>
GitHub的使用方法
查看>>
AT3576 Popping Balls
查看>>
springboot入门_多数据源
查看>>
如果一个游戏上面加一个透明层,js能不能实现 点击透明层的任意点 而正常玩游戏...
查看>>
图的m着色问题
查看>>