复制代码代码如下:
导入 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("")) {
休息;
}
}
}
}
}