日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java读取excel某个单元格的值_[转载]Java读取Excel中的单元格数据

發(fā)布時(shí)間:2024/9/27 java 165 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java读取excel某个单元格的值_[转载]Java读取Excel中的单元格数据 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目前網(wǎng)上能找到的讀取Excel表格中數(shù)據(jù)的兩種比較好的方案:PageOffice好用開發(fā)效率高;POI免費(fèi)。供大家參考,針對(duì)具體情況選擇具體方案。

1.?PageOffice讀取excel

import com.zhuozhengsoft.pageoffice.*;

import com.zhuozhengsoft.pageoffice.excelreader.*;

//讀取Excel單元格數(shù)據(jù)

Workbook workBook = new Workbook(request, response);

Sheet sheet = workBook.openSheet("Sheet1");

Table table = sheet.openTable("A1:F5");while (!table.getEOF()) {

//獲取提交的數(shù)值

if (!table.getDataFields().getIsEmpty()) {

for(int i=0; i<6; i++){

String content = table.getDataFields().get(i).getText();

System.out.println(content);//輸出單元格數(shù)據(jù)

}

}

//循環(huán)進(jìn)入下一行

table.nextRow();

}

table.close();

workBook.close();

這些代碼只是在服務(wù)器端接收客戶端提交的excel單元格數(shù)據(jù),PageOffice真正的讀取單元格數(shù)據(jù)工作是在客戶端執(zhí)行的,由于服務(wù)器端并沒有對(duì)excel文件做任何讀取操作,只接受一下數(shù)據(jù)就行,無(wú)需耗費(fèi)大量資源去處理文件,也無(wú)需處理多個(gè)客戶并發(fā)請(qǐng)求的問題,因?yàn)槊總€(gè)客戶端都各自讀取自己的數(shù)據(jù),服務(wù)器端只接收數(shù)據(jù)保存到數(shù)據(jù)庫(kù)。

2.?poi讀取excel

package com.test.poi;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.util.Iterator;

import org.apache.poi.hssf.extractor.ExcelExtractor;

import org.apache.poi.hssf.usermodel.HSSFCell;

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.Cell;

import org.apache.poi.ss.usermodel.Row;

public class ReadExcel {

public static void main(String[] args) throws Exception {

HSSFWorkbook wb = null;

POIFSFileSystem fs = null;

try {

fs = new POIFSFileSystem(new FileInputStream("e:\\workbook.xls"));

wb = new HSSFWorkbook(fs);

} catch (IOException e) {

e.printStackTrace();

}

HSSFSheet sheet = wb.getSheetAt(0);

HSSFRow row = sheet.getRow(0);

HSSFCell cell = row.getCell(0);

String msg = cell.getStringCellValue();

System.out.println(msg);

}

public static void method2() throws Exception {

InputStream is = new FileInputStream("e:\\workbook.xls");

HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(is));

ExcelExtractor extractor = new ExcelExtractor(wb);

extractor.setIncludeSheetNames(false);

extractor.setFormulasNotResults(false);

extractor.setIncludeCellComments(true);

String text = extractor.getText();

System.out.println(text);

}

public static void method3() throws Exception {

HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream("e:\\workbook.xls"));

HSSFSheet sheet = wb.getSheetAt(0);

for (Iterator iter = (Iterator) sheet.rowIterator(); iter.hasNext();) {

Row row = iter.next();

for (Iterator iter2 = (Iterator) row.cellIterator(); iter2.hasNext();) {

Cell cell = iter2.next();

String content = cell.getStringCellValue();// 除非是sring類型,否則這樣迭代讀取會(huì)有錯(cuò)誤

System.out.println(content);

}

}

}

}

注意:HSSFWorkbook,XSSFWorkbook的區(qū)別:前者是解析出來(lái)excel 2007 以前版本的,后綴名為xls的,后者是解析excel 2007 版的,后綴名為xlsx。需要針對(duì)不同的excel版本編寫不同的程序,判斷該用哪個(gè)workbook來(lái)對(duì)其進(jìn)行解析處理,而且通常需要開發(fā)人員自己把這些方法都做相應(yīng)封裝,使其更面向?qū)ο?#xff0c;工作量有點(diǎn)大,還有就是要求開發(fā)高質(zhì)量代碼,因?yàn)槭窃诜?wù)器上執(zhí)行的,必須解決多個(gè)客戶同時(shí)請(qǐng)求的并發(fā)問題,和萬(wàn)一程序執(zhí)行異常的處理問題,上例只是main方法的簡(jiǎn)單示例而已,僅供參考!

總結(jié)

以上是生活随笔為你收集整理的java读取excel某个单元格的值_[转载]Java读取Excel中的单元格数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。