<dependencies> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-scratchpad</artifactId> <version>3.14</version> </dependency> </dependencies>
package excel; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class TT { public static void main(String[] args) { try { File file=new File("src/main/java/excel/1.xls"); String name=file.getName(); boolean is2007=true; if(name.matches("^.+\.(?i)(xls)$")){ is2007=false; }else if (name.matches("^.+\.(?i)(xlsx)$")) { is2007=true; }else{ throw new Exception("未知的版本"); } InputStream is=new FileInputStream(file); Workbook wb=null; if(is2007){ wb=new XSSFWorkbook(is); }else{ wb=new HSSFWorkbook(is); } Sheet sheet=wb.getSheetAt(0); //得到行数 int totalRows=sheet.getPhysicalNumberOfRows(); List<String> list=new ArrayList<String>(); //得到列数 int totalCells=sheet.getRow(0).getPhysicalNumberOfCells(); for(int i=0;i<totalRows;i++){ Row row=sheet.getRow(i); for(int j=0;j<totalCells;j++){ Cell cell=row.getCell(j); if(i==0){ list.add(cell.getStringCellValue()); }else{ break; } } break; } for(int i=0;i<totalRows;i++){ Row row=sheet.getRow(i); System.out.println("============"+(i+1)); for(int j=0;j<totalCells;j++){ Cell cell=row.getCell(j); String v=""; if(cell==null){ v=""; }else{ int t=cell.getCellType();
if(XSSFCell.CELL_TYPE_NUMERIC==t){
double d=cell.getNumericCellValue();
String value=Double.toString(d);
int len=value.length();
int index=value.indexOf(".");
int pointW=4;//保留小数位数
pointW++;
if(index>0&&(index+pointW)<len){
v=value.substring(0,index+pointW);
}else{
v=value;
}
}else{
cell.setCellType(Cell.CELL_TYPE_STRING);
v=cell.getStringCellValue();
} } System.out.print(list.get(j)+":"+v+"|"); } System.out.println(); } } catch (Exception e) { e.printStackTrace(); } } }