複製程式碼如下:
導入 java.io.BufferedInputStream;
導入java.io.File;
導入 java.io.FileInputStream;
導入 java.io.FileOutputStream;
導入java.io.IOException;
導入 java.nio.channels.FileChannel;
導入 java.text.DecimalFormat;
導入 java.text.SimpleDateFormat;
導入 java.util.Date;
導入 org.apache.poi.hssf.usermodel.HSSFCell;
導入 org.apache.poi.hssf.usermodel.HSSFDateUtil;
導入 org.apache.poi.hssf.usermodel.HSSFRow;
導入 org.apache.poi.hssf.usermodel.HSSFSheet;
導入 org.apache.poi.hssf.usermodel.HSSFWorkbook;
導入 org.apache.poi.poifs.filesystem.POIFSFileSystem;
公共類別文件操作符{
公共靜態無效主(字串[] args)拋出異常{
字串路徑 = "F://1.xls";
列印(路徑);
}
公共靜態無效列印(字串路徑)拋出IOException{
BufferedInputStream in = new BufferedInputStream(
新的 FileInputStream(新的檔案(路徑)));
POIFSFileSystem fs = new POIFSFileSystem(in);
HSSFWorkbook wb = 新的 HSSFWorkbook(fs);
HSSFCell 單元 = null;
HSSFSheet st = wb.getSheetAt(0);
for (int rowIndex = 0; rowIndex <= st.getLastRowNum(); rowIndex++) {
HSSFRow 行 = st.getRow(rowIndex);
如果(行==空){
繼續;
}
for (短columnIndex = 0, size = row.getLastCellNum();columnIndex <= size;columnIndex++) {
單元格 = row.getCell(columnIndex);
字串值=“”;
如果(單元格!=空){
//注意:一定要設定這個,否則可能會出現亂碼
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
開關 (cell.getCellType()) {
案例 HSSFCell.CELL_TYPE_STRING:
值 = cell.getStringCellValue();
休息;
案例 HSSFCell.CELL_TYPE_NUMERIC:
如果(HSSFDateUtil.isCellDateFormatted(單元格)){
日期日期 = cell.getDateCellValue();
如果(日期!=空){
值 = new SimpleDateFormat("yyyy-MM-dd")
.format(日期);
} 別的 {
值=“”;
}
} 別的 {
值 = new DecimalFormat("0").format(單元格
.getNumericCellValue());
}
休息;
案例 HSSFCell.CELL_TYPE_FORMULA:
// 導入時如果為公式產生的資料則無值
if (!cell.getStringCellValue().equals("")) {
值 = cell.getStringCellValue();
} 別的 {
值 = cell.getNumericCellValue() + "";
}
休息;
案例 HSSFCell.CELL_TYPE_BLANK:
休息;
案例 HSSFCell.CELL_TYPE_ERROR:
值=“”;
休息;
案例 HSSFCell.CELL_TYPE_BOOLEAN:
值 = (cell.getBooleanCellValue() == true ? "Y"
:“N”);
休息;
預設:
值=“”;
}
System.out.println(行索引 + "," + 列索引 + ":"
+值);
}
if (columnIndex == 0 && value.trim().equals("")) {
休息;
}
}
}
}
}