软件编程
位置:首页>> 软件编程>> java编程>> java解析excel文件的方法

java解析excel文件的方法

作者:wanghjbuf  发布时间:2023-05-13 15:53:44 

标签:java,解析,excel

建立工程前需要导入POI包。POI相关jar包下载地址:http://poi.apache.org/download.html

1.解析.xlsx后缀名的的EXCEL文件:


package com.shuai.hello;  

import java.io.FileInputStream;  
import java.io.IOException;  
import java.io.InputStream;  

import org.apache.poi.hssf.usermodel.HSSFCell;  
import org.apache.poi.xssf.usermodel.XSSFCell;  
import org.apache.poi.xssf.usermodel.XSSFRow;  
import org.apache.poi.xssf.usermodel.XSSFSheet;  
import org.apache.poi.xssf.usermodel.XSSFWorkbook;  

public class ReadExcel {  
 public static void main(String[] args) throws IOException {  

//File file = new File("C:/Users.xlsx");  
   InputStream stream = new FileInputStream("C:/Users.xlsx");  

XSSFWorkbook xssfWorkbook = new XSSFWorkbook(stream);  
   XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);  

int rowstart = xssfSheet.getFirstRowNum();  
   int rowEnd = xssfSheet.getLastRowNum();  
   for(int i=rowstart;i<=rowEnd;i++)  
   {  
     XSSFRow row = xssfSheet.getRow(i);  
     if(null == row) continue;  
     int cellStart = row.getFirstCellNum();  
     int cellEnd = row.getLastCellNum();  

for(int k=cellStart;k<=cellEnd;k++)  
     {  
       XSSFCell cell = row.getCell(k);  
       if(null==cell) continue;  

switch (cell.getCellType())  
       {  
         case HSSFCell.CELL_TYPE_NUMERIC: // 数字  
           System.out.print(cell.getNumericCellValue()  
               + "\t");  
           break;  
         case HSSFCell.CELL_TYPE_STRING: // 字符串  
           System.out.print(cell.getStringCellValue()  
               + "\t");  
           break;  
         case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean  
           System.out.println(cell.getBooleanCellValue()  
               + "\t");  
           break;  
         case HSSFCell.CELL_TYPE_FORMULA: // 公式  
           System.out.print(cell.getCellFormula() + "\t");  
           break;  
         case HSSFCell.CELL_TYPE_BLANK: // 空值  
           System.out.println(" ");  
           break;  
         case HSSFCell.CELL_TYPE_ERROR: // 故障  
           System.out.println(" ");  
           break;  
         default:  
           System.out.print("未知类型  ");  
           break;  
       }  

}  
     System.out.print("\n");  
   }  
 }  
}  

/*String fileType = filePath.substring(filePath.lastIndexOf(".") + 1, filePath.length());
InputStream stream = new FileInputStream(filePath);
Workbook wb = null;
if (fileType.equals("xls")) {
wb = new HSSFWorkbook(stream);
} else if (fileType.equals("xlsx")) {
wb = new XSSFWorkbook(stream);
} else {
System.out.println("您输入的excel格式不正确");
}*/  

2.解析后缀为.xls的EXCEL文件:


package com.shuai.hello;  

import java.io.File;  
import java.io.FileInputStream;  
import java.io.IOException;  

import org.apache.poi.hssf.usermodel.HSSFCell;  
import org.apache.poi.hssf.usermodel.HSSFRow;  
import org.apache.poi.hssf.usermodel.HSSFSheet;  
import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
import org.apache.poi.poifs.filesystem.POIFSFileSystem;  

public class ReadXls {  
 public static void main(String[] args) throws IOException, IOException {  
   File file = new File("C:/Users/dengta/Desktop/ok1.xls");  
   POIFSFileSystem poifsFileSystem = new POIFSFileSystem(new FileInputStream(file));  
   HSSFWorkbook hssfWorkbook = new HSSFWorkbook(poifsFileSystem);  
   HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0);  

int rowstart = hssfSheet.getFirstRowNum();  
   int rowEnd = hssfSheet.getLastRowNum();  
   for(int i=rowstart;i<=rowEnd;i++)  
   {  
     HSSFRow row = hssfSheet.getRow(i);  
     if(null == row) continue;  
     int cellStart = row.getFirstCellNum();  
     int cellEnd = row.getLastCellNum();  

for(int k=cellStart;k<=cellEnd;k++)  
     {  
       HSSFCell cell = row.getCell(k);  
       if(null==cell) continue;  
       //System.out.print("" + k + " ");  
       //System.out.print("type:"+cell.getCellType());  

switch (cell.getCellType())  
       {  
         case HSSFCell.CELL_TYPE_NUMERIC: // 数字  
                 System.out.print(cell.getNumericCellValue()  
               + "  ");  
           break;  
         case HSSFCell.CELL_TYPE_STRING: // 字符串  
           System.out.print(cell.getStringCellValue()  
               + "  ");  
           break;  
         case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean  
           System.out.println(cell.getBooleanCellValue()  
               + "  ");  
           break;  
         case HSSFCell.CELL_TYPE_FORMULA: // 公式  
           System.out.print(cell.getCellFormula() + "  ");  
           break;  
         case HSSFCell.CELL_TYPE_BLANK: // 空值  
           System.out.println(" ");  
           break;  
         case HSSFCell.CELL_TYPE_ERROR: // 故障  
           System.out.println(" ");  
           break;  
         default:  
           System.out.print("未知类型  ");  
           break;  
       }  

}  
     System.out.print("\n");  
   }  
 }  
}

来源:http://blog.csdn.net/wanghjbuf/article/details/54809134?locationNum=4&fps=1

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com