复制代码代码如下:
importar java.io.BufferedInputStream;
importar java.io.File;
importar java.io.FileInputStream;
importar java.io.FileOutputStream;
importar java.io.IOException;
importar java.nio.channels.FileChannel;
importar java.text.DecimalFormat;
importar java.text.SimpleDateFormat;
importar java.util.Date;
importar org.apache.poi.hssf.usermodel.HSSFCell;
importar org.apache.poi.hssf.usermodel.HSSFDateUtil;
importar org.apache.poi.hssf.usermodel.HSSFrow;
importar org.apache.poi.hssf.usermodel.HSSFSheet;
importar org.apache.poi.hssf.usermodel.HSSFWorkbook;
importar org.apache.poi.poifs.filesystem.POIFSFileSystem;
classe pública FileOperator {
public static void main(String[] args) lança exceção {
String caminho = "F://1.xls";
imprimir(caminho);
}
public static void print(Caminho da string) lança IOException{
BufferedInputStream em = novo BufferedInputStream(
new FileInputStream(novo arquivo(caminho)));
POIFSFileSystem fs = novo POIFSFileSystem(in);
HSSFWorkbook wb = novo HSSFWorkbook(fs);
Célula HSSFCell = nula;
HSSFSheet st = wb.getSheetAt(0);
for (int rowIndex = 0; rowIndex <= st.getLastRowNum(); rowIndex++) {
linha HSFRow = st.getRow(rowIndex);
if (linha == nulo) {
continuar;
}
for (short columnIndex = 0, size = row.getLastCellNum(); columnIndex <= size; columnIndex++) {
célula = linha.getCell(colunaIndex);
Valor da string = "";
if (célula! = nulo) {
// 注意:一定要设成这个,否则可能会出现乱码
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
mudar (cell.getCellType()) {
caso HSSFCell.CELL_TYPE_STRING:
valor = cell.getStringCellValue();
quebrar;
caso HSSFCell.CELL_TYPE_NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(célula)) {
Data data = cell.getDateCellValue();
if (data! = nulo) {
valor = new SimpleDateFormat("aaaa-MM-dd")
.formato(data);
} outro {
valor = "";
}
} outro {
valor = novo DecimalFormat("0").format(célula
.getNumericCellValue());
}
quebrar;
caso HSSFCell.CELL_TYPE_FORMULA:
// 导入时如果为公式生成的数据则无值
if (!cell.getStringCellValue().equals("")) {
valor = cell.getStringCellValue();
} outro {
valor = cell.getNumericCellValue() + "";
}
quebrar;
caso HSSFCell.CELL_TYPE_BLANK:
quebrar;
caso HSSFCell.CELL_TYPE_ERROR:
valor = "";
quebrar;
caso HSSFCell.CELL_TYPE_BOOLEAN:
valor = (cell.getBooleanCellValue() == verdadeiro? "Y"
: "N");
quebrar;
padrão:
valor = "";
}
System.out.println(rowIndex + "," + columnIndex + ":"
+ valor);
}
if (columnIndex == 0 && valor.trim().equals("")) {
quebrar;
}
}
}
}
}