java使用poi讀取excel內(nèi)容方法實(shí)例
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
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.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;
public class FileOperator {
public static void main(String[] args) throws Exception {
String path = "F:\\1.xls";
print(path);
}
public static void print(String path) throws IOException{
BufferedInputStream in = new BufferedInputStream(
new FileInputStream(new File(path)));
POIFSFileSystem fs = new POIFSFileSystem(in);
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFCell cell = null;
HSSFSheet st = wb.getSheetAt(0);
for (int rowIndex = 0; rowIndex <= st.getLastRowNum(); rowIndex++) {
HSSFRow row = st.getRow(rowIndex);
if (row == null) {
continue;
}
for (short columnIndex = 0, size = row.getLastCellNum(); columnIndex <= size; columnIndex++) {
cell = row.getCell(columnIndex);
String value = "";
if (cell != null) {
// 注意:一定要設(shè)成這個,否則可能會出現(xiàn)亂碼
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_STRING:
value = cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue();
if (date != null) {
value = new SimpleDateFormat("yyyy-MM-dd")
.format(date);
} else {
value = "";
}
} else {
value = new DecimalFormat("0").format(cell
.getNumericCellValue());
}
break;
case HSSFCell.CELL_TYPE_FORMULA:
// 導(dǎo)入時如果為公式生成的數(shù)據(jù)則無值
if (!cell.getStringCellValue().equals("")) {
value = cell.getStringCellValue();
} else {
value = cell.getNumericCellValue() + "";
}
break;
case HSSFCell.CELL_TYPE_BLANK:
break;
case HSSFCell.CELL_TYPE_ERROR:
value = "";
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
value = (cell.getBooleanCellValue() == true ? "Y"
: "N");
break;
default:
value = "";
}
System.out.println(rowIndex + "," + columnIndex + ":"
+ value);
}
if (columnIndex == 0 && value.trim().equals("")) {
break;
}
}
}
}
}
相關(guān)文章
JAVA過濾標(biāo)簽實(shí)現(xiàn)將html內(nèi)容轉(zhuǎn)換為文本的方法示例
這篇文章主要介紹了JAVA過濾標(biāo)簽實(shí)現(xiàn)將html內(nèi)容轉(zhuǎn)換為文本的方法,涉及java針對HTML代碼的正則替換相關(guān)操作技巧,需要的朋友可以參考下2017-07-07Spring Boot 校驗(yàn)用戶上傳的圖片文件(兩種方式)
圖片上傳是現(xiàn)代應(yīng)用中非常常見的一種功能,也是風(fēng)險比較高的一個地方,惡意用戶可能會上傳一些病毒、木馬,本文給大家介紹兩種對圖片文件進(jìn)行校驗(yàn)的方法,感興趣的朋友一起看看吧2023-11-11Maven本地倉庫的配置以及修改默認(rèn).m2倉庫位置
今天小編就為大家分享一篇關(guān)于Maven本地倉庫的配置以及修改默認(rèn).m2倉庫位置的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10Java實(shí)戰(zhàn)項(xiàng)目 健身管理系統(tǒng)
本文是一個Java語言編寫的實(shí)戰(zhàn)項(xiàng)目,是一個健身管理系統(tǒng),主要用到了ssm+springboot等技術(shù),技術(shù)含量筆記高,感興趣的童鞋跟著小編往下看吧2021-09-09Java架構(gòu)設(shè)計(jì)之六步拆解 DDD
DDD(Domain-Driven Design 領(lǐng)域驅(qū)動設(shè)計(jì))是由Eric Evans最先提出,目的是對軟件所涉及到的領(lǐng)域進(jìn)行建模,以應(yīng)對系統(tǒng)規(guī)模過大時引起的軟件復(fù)雜性的問題2022-02-02java實(shí)現(xiàn)IP地址轉(zhuǎn)換
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)IP地址轉(zhuǎn)換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11Spring boot Rabbitmq消息防丟失實(shí)踐
這篇文章主要介紹了Spring boot Rabbitmq消息防丟失實(shí)踐,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09