复制代码代码如下:
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.Fecha;
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;
Operador de archivo de clase pública {
public static void main (String [] args) lanza una excepción {
Ruta de cadena = "F://1.xls";
imprimir(ruta);
}
La impresión pública estática vacía (ruta de cadena) arroja IOException {
BufferedInputStream en = nuevo BufferedInputStream(
nuevo FileInputStream (nuevo archivo (ruta)));
POIFSFileSystem fs = nuevo POIFSFileSystem(en);
HSSFWorkbook wb = nuevo HSSFWorkbook(fs);
Celda HSSFCell = nula;
HSSFSheet st = wb.getSheetAt(0);
for (int índice de fila = 0; índice de fila <= st.getLastRowNum(); índice de fila ++) {
HSSFRow fila = st.getRow(rowIndex);
si (fila == nula) {
continuar;
}
for (índice de columna corto = 0, tamaño = fila.getLastCellNum(); índice de columna <= tamaño; índice de columna++) {
celda = fila.getCell(columnIndex);
Valor de cadena = "";
si (celda! = nulo) {
// 注意:一定要设成这个,否则可能会出现乱码
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cambiar (cell.getCellType()) {
caso HSSFCell.CELL_TYPE_STRING:
valor = cell.getStringCellValue();
romper;
caso HSSFCell.CELL_TYPE_NUMERIC:
si (HSSFDateUtil.isCellDateFormatted(celda)) {
Fecha fecha = cell.getDateCellValue();
si (fecha! = nulo) {
valor = nuevo SimpleDateFormat("aaaa-MM-dd")
.formato(fecha);
} demás {
valor = "";
}
} demás {
valor = nuevo formato decimal ("0"). formato (celda
.getNumericCellValue());
}
romper;
caso HSSFCell.CELL_TYPE_FORMULA:
// 导入时如果为公式生成的数据则无值
si (!cell.getStringCellValue().equals("")) {
valor = cell.getStringCellValue();
} demás {
valor = celda.getNumericCellValue() + "";
}
romper;
caso HSSFCell.CELL_TYPE_BLANK:
romper;
caso HSSFCell.CELL_TYPE_ERROR:
valor = "";
romper;
caso HSSFCell.CELL_TYPE_BOOLEAN:
valor = (cell.getBooleanCellValue() == verdadero? "Y"
: "N");
romper;
por defecto:
valor = "";
}
System.out.println(rowIndex + "," + columnIndex + ":"
+ valor);
}
if (columnIndex == 0 && valor.trim().equals("")) {
romper;
}
}
}
}
}