(二)JAVA使用POI操做excel

 

1,建立一個時間格式的單元格

Demo4.javajava

 1 package com.wishwzp.poi;
 2 
 3 import java.io.FileOutputStream;
 4 import java.util.Calendar;
 5 import java.util.Date;
 6 
 7 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 8 import org.apache.poi.ss.usermodel.Cell;
 9 import org.apache.poi.ss.usermodel.CellStyle;
10 import org.apache.poi.ss.usermodel.CreationHelper;
11 import org.apache.poi.ss.usermodel.Row;
12 import org.apache.poi.ss.usermodel.Sheet;
13 import org.apache.poi.ss.usermodel.Workbook;
14 
15 public class Demo4 {
16 
17     public static void main(String[] args) throws Exception{
18         Workbook wb=new HSSFWorkbook(); // 定義一個新的工做簿
19         Sheet sheet=wb.createSheet("第一個Sheet頁");  // 建立第一個Sheet頁
20         
21         Row row=sheet.createRow(0); // 建立一個行
22         
23         Cell cell=row.createCell(0); // 建立一個單元格  第1列
24         cell.setCellValue(new Date());  // 給單元格設置值
25         
26         CreationHelper createHelper=wb.getCreationHelper();
27         CellStyle cellStyle=wb.createCellStyle(); //單元格樣式類
28         cellStyle.setDataFormat(createHelper.createDataFormat().getFormat("yyy-mm-dd hh:mm:ss"));
29         cell=row.createCell(1); // 第二列
30         cell.setCellValue(new Date());
31         cell.setCellStyle(cellStyle);
32         
33         cell=row.createCell(2);  // 第三列
34         cell.setCellValue(Calendar.getInstance());
35         cell.setCellStyle(cellStyle);
36         
37         FileOutputStream fileOut=new FileOutputStream("d:\\工做簿.xls");
38         wb.write(fileOut);
39         fileOut.close();
40     }
41 }

 

 

 


2,處理不一樣內容格式的單元格

 Demo5.javaapache

 1 package com.wishwzp.poi;
 2 
 3 import java.io.FileOutputStream;
 4 import java.util.Calendar;
 5 import java.util.Date;
 6 
 7 import org.apache.poi.hssf.usermodel.HSSFCell;
 8 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 9 import org.apache.poi.ss.usermodel.Cell;
10 import org.apache.poi.ss.usermodel.CellStyle;
11 import org.apache.poi.ss.usermodel.CreationHelper;
12 import org.apache.poi.ss.usermodel.Row;
13 import org.apache.poi.ss.usermodel.Sheet;
14 import org.apache.poi.ss.usermodel.Workbook;
15 
16 public class Demo5 {
17 
18     public static void main(String[] args) throws Exception{
19         Workbook wb=new HSSFWorkbook(); // 定義一個新的工做簿
20         Sheet sheet=wb.createSheet("第一個Sheet頁");  // 建立第一個Sheet頁
21         
22         Row row=sheet.createRow(0); // 建立一個行
23         
24         Cell cell=row.createCell(0); // 建立一個單元格  第1列
25         cell.setCellValue(new Date());  // 給單元格設置值
26         
27         row.createCell(1).setCellValue(1);
28         row.createCell(2).setCellValue("一個字符串");
29         row.createCell(3).setCellValue(true);
30         row.createCell(4).setCellValue(HSSFCell.CELL_TYPE_NUMERIC);
31         row.createCell(5).setCellValue(false);
32         
33         FileOutputStream fileOut=new FileOutputStream("d:\\工做簿.xls");
34         wb.write(fileOut);
35         fileOut.close();
36     }
37 }

 

 

3,遍歷工做簿的行和列並獲取單格內容

 

咱們遍歷這個excel。  spa

Demo6.java3d

 

 1 package com.wishwzp.poi;
 2 
 3 import java.io.FileInputStream;
 4 import java.io.InputStream;
 5 
 6 import org.apache.poi.hssf.usermodel.HSSFCell;
 7 import org.apache.poi.hssf.usermodel.HSSFRow;
 8 import org.apache.poi.hssf.usermodel.HSSFSheet;
 9 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
10 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
11 
12 public class Demo6 {
13 
14     public static void main(String[] args) throws Exception{
15         InputStream is=new FileInputStream("d:\\我的名單.xls");
16         POIFSFileSystem fs=new POIFSFileSystem(is);
17         HSSFWorkbook wb=new HSSFWorkbook(fs);
18         
19         HSSFSheet hssfSheet=wb.getSheetAt(0); // 獲取第一個Sheet頁
20         if(hssfSheet==null){
21             return;
22         }
23         // 遍歷行Row
24         for(int rowNum=0;rowNum<=hssfSheet.getLastRowNum();rowNum++){
25             HSSFRow hssfRow=hssfSheet.getRow(rowNum);
26             if(hssfRow==null){
27                 continue;
28             }
29             // 遍歷列Cell
30             for(int cellNum=0;cellNum<=hssfRow.getLastCellNum();cellNum++){
31                 HSSFCell hssfCell=hssfRow.getCell(cellNum);
32                 if(hssfCell==null){
33                     continue;
34                 }
35                 System.out.print(" "+getValue(hssfCell));
36             }
37             System.out.println();
38         }
39     }
40     
41     private static String getValue(HSSFCell hssfCell){
42         if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN){
43             return String.valueOf(hssfCell.getBooleanCellValue());
44         }else if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){
45             return String.valueOf(hssfCell.getNumericCellValue());
46         }else{
47             return String.valueOf(hssfCell.getStringCellValue());
48         }
49     }
50 }

控制檯輸出:excel

這裏面是遍歷 ,是表單形式。。。code

 

4,文本提取

咱們文本提取上面我的名單.xls表格。。。orm

  Demo7.javablog

 

 1 package com.wishwzp.poi;
 2 
 3 import java.io.FileInputStream;
 4 import java.io.InputStream;
 5 
 6 import org.apache.poi.hssf.extractor.ExcelExtractor;
 7 import org.apache.poi.hssf.usermodel.HSSFCell;
 8 import org.apache.poi.hssf.usermodel.HSSFRow;
 9 import org.apache.poi.hssf.usermodel.HSSFSheet;
10 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
11 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
12 
13 public class Demo7 {
14 
15     public static void main(String[] args) throws Exception{
16         InputStream is=new FileInputStream("d:\\我的名單.xls");
17         POIFSFileSystem fs=new POIFSFileSystem(is);
18         HSSFWorkbook wb=new HSSFWorkbook(fs);
19         
20         ExcelExtractor excelExtractor=new ExcelExtractor(wb);
21         excelExtractor.setIncludeSheetNames(false);// 咱們不須要Sheet頁的名字
22         System.out.println(excelExtractor.getText());
23     }
24     
25 
26 }

 

控制檯顯示:字符串

這裏面是文本信息。。。get

 

excelExtractor.setIncludeSheetNames(false);這個若是爲true的話就會顯示Sheet頁了

excelExtractor.setIncludeSheetNames(true):

控制檯輸出:

相關文章
相關標籤/搜索