复制代码代码如下:
impor java.io.BufferedInputStream;
impor java.io.File;
impor java.io.FileInputStream;
impor java.io.FileOutputStream;
impor java.io.IOException;
impor java.nio.channels.FileChannel;
impor java.teks.DecimalFormat;
impor java.teks.SimpleDateFormat;
import java.util.Date;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
FileOperator kelas publik {
public static void main(String[] args) melempar Pengecualian {
Jalur string = "F://1.xls";
cetak(jalur);
}
public static void print(String path) melempar IOException{
BufferedInputStream di = BufferedInputStream baru(
FileInputStream baru (File baru (jalur)));
POIFSFileSystem fs = POIFSFileSystem baru(dalam);
Buku Kerja HSSF wb = Buku Kerja HSSF baru(fs);
sel HSSFCell = null;
HSSFSheet st = wb.getSheetAt(0);
untuk (int rowIndex = 0; rowIndex <= st.getLastRowNum(); rowIndex++) {
Baris HSSFRow = st.getRow(rowIndex);
jika (baris == nol) {
melanjutkan;
}
untuk (indeks kolom pendek = 0, ukuran = baris.getLastCellNum(); indeks kolom <= ukuran; indeks kolom++) {
sel = baris.getCell(columnIndex);
Nilai string = "";
jika (sel != nol) {
// 注意:一定要设成这个,否则可能会出现乱码
sel.setEncoding(HSSFCell.ENCODING_UTF_16);
beralih (sel.getCellType()) {
kasus HSSFCell.CELL_TYPE_STRING:
nilai = sel.getStringCellValue();
merusak;
kasus HSSFCell.CELL_TYPE_NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(sel)) {
Tanggal tanggal = sel.getDateCellValue();
jika (tanggal != null) {
nilai = new SimpleDateFormat("yyyy-MM-dd")
.format(tanggal);
} kalau tidak {
nilai = "";
}
} kalau tidak {
nilai = new DecimalFormat("0").format(sel
.getNumericCellValue());
}
merusak;
kasus HSSFCell.CELL_TYPE_FORMULA:
// 导入时如果为公式生成的数据则无值
if (!cell.getStringCellValue().equals("")) {
nilai = sel.getStringCellValue();
} kalau tidak {
nilai = sel.getNumericCellValue() + "";
}
merusak;
kasus HSSFCell.CELL_TYPE_BLANK:
merusak;
kasus HSSFCell.CELL_TYPE_ERROR:
nilai = "";
merusak;
kasus HSSFCell.CELL_TYPE_BOOLEAN:
nilai = (sel.getBooleanCellValue() == benar ? "Y"
: "N");
merusak;
bawaan:
nilai = "";
}
System.out.println(indeks baris + "," + indeks kolom + ":"
+ nilai);
}
if (kolomIndeks == 0 && nilai.trim().equals("")) {
merusak;
}
}
}
}
}