您好,登錄后才能下訂單哦!
說明該讀取支持97到2003
import java.io.FileInputStream;
import java.io.InputStream;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
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;
import org.apache.poi.ss.usermodel.CellStyle;
//excle 讀取
public class Demo1 {
public static void main(String[] args) throws Exception {
InputStream is = new FileInputStream("E:\\data.xls");
POIFSFileSystem fs = new POIFSFileSystem(is);
HSSFWorkbook wb = new HSSFWorkbook(fs);//創建一個新的工作簿
HSSFSheet hssfSheet = wb.getSheetAt(0);
if (hssfSheet == null)
{
return;
}
//遍歷行row
for(int rowNum = 0; rowNum <= hssfSheet.getLastRowNum(); rowNum++)
{
HSSFRow hssfRow = hssfSheet.getRow(rowNum);
if(hssfRow == null)
{
continue;
}
//遍歷列
for(int cellNum = 0;cellNum <= hssfRow.getLastCellNum() ; cellNum++)
{
HSSFCell hssfCell = hssfRow.getCell(cellNum);
if(hssfCell == null)
{
continue;
}
System.out.print(""+getValue(hssfCell));
}
System.out.println();
}
}
/*1)CELL_TYPE_BLANK :空值
2)CELL_TYPE_BOOLEAN :布爾型
3)CELL_TYPE_ERROR : 錯誤
4)CELL_TYPE_FORMULA :公式型
5)CELL_TYPE_STRING:字符串型
6)CELL_TYPE_NUMERIC:數值型
*
* */
//類型判斷方法
private static String getValue(HSSFCell hssfCell)
{
if(hssfCell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) // 布爾類型
{
return String.valueOf(hssfCell.getBooleanCellValue());
}
else if(hssfCell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) // 數字類型
{
return String.valueOf(hssfCell.getNumericCellValue());
}
else if(hssfCell.getCellType() == HSSFCell.CELL_TYPE_FORMULA)
{
return String.valueOf(hssfCell.getDateCellValue()); //公式型
}
else
{
return String.valueOf(hssfCell.getStringCellValue()); //字符串
}
}
//poi讀取excel文檔判斷日期格式
public static String readCellValues(HSSFCell cell) throws Exception {
// 用于返回結果
String result = new String();
try {
// 如果單元格為空,返回null
if (cell == null) {
result = "null";
}
else {
// 判斷單元格類型
switch (cell.getCellType()) {
// 數字類型
case HSSFCell.CELL_TYPE_NUMERIC:
// 處理日期格式、時間格式
if (HSSFDateUtil.isCellDateFormatted(cell))
{
SimpleDateFormat sdf = null;
if (cell.getCellStyle().getDataFormat() == HSSFDataFormat
.getBuiltinFormat("h:mm")) {
sdf = new SimpleDateFormat("HH:mm");
} else {// 日期
sdf = new SimpleDateFormat("yyyy-MM-dd");
}
Date date = cell.getDateCellValue();
result = sdf.format(date);
} else if (cell.getCellStyle().getDataFormat() == 58) {
// 處理自定義日期格式:m月d日(通過判斷單元格的格式id解決,id的值是58)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
double value = cell.getNumericCellValue();
Date date = org.apache.poi.ss.usermodel.DateUtil
.getJavaDate(value);
result = sdf.format(date);
} else {
double value = cell.getNumericCellValue();
CellStyle style = cell.getCellStyle();
DecimalFormat format = new DecimalFormat();
String temp = style.getDataFormatString();
// 單元格設置成常規
if (temp.equals("General")) {
format.applyPattern("#");
}
result = format.format(value);
}
break;
case HSSFCell.CELL_TYPE_STRING:// String類型
result = cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_BLANK:
result = "";
default:
result = "";
break;
}
}
}
catch(Exception e) {
e.printStackTrace();
}
return result;
}
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。