導航:首頁 > 編程語言 > java讀取excel單元格數

java讀取excel單元格數

發布時間:2024-06-03 08:44:26

java鎬庝箞鑾峰彇excel鍗曞厓鏍

importjava.io.*;importjxl.*;publicclassReadXLS{publicstaticvoidmain(Stringargs[]){try{Workbookbook=Workbook.getWorkbook(newFile(鈥淐:\\嫻嬭瘯.xls鈥));//鑾峰緱絎涓涓宸ヤ綔琛ㄥ硅薄Sheetsheet=book.getSheet(0);//寰楀埌絎涓鍒楃涓琛岀殑鍗曞厓鏍糃ellcell1=sheet.getCell(0,0);Stringresult=cell1.getContents();System.out.println(result);book.close();}catch(Exceptione){System.out.println(e);}}}

② java 取Excel帶有小數點數據,不能取完整,只能取小數點的後面2位,怎麼解決

如果你Excel表中的該單元格格式為保留幾位數字,那麼你取到的便是幾位數字,因為默認是以字元方式讀取的
有兩種方法,
一,你可以修改Excel表,顯示想要的小數位數
二,讀取數值時,把該單元格中的格式以數字方式讀取,

③ 用java讀excel的數據。

通過java的poi讀取xlsx文件:

將excel文件使用文件流讀取

把excel的文件流轉化成excel的工作薄

獲取工作薄的sheet(工作表),迭代獲取

最後再次迭代每一個sheet,獲取每一行的每一個單元格,把數據取出存儲起來

④ 用JAVA如何取得EXCEL 中指定的幾行的數據

可以使用poi來解析excel:
//獲取指定行,索引從0開始
hssfRow=hssfSheet.getRow(1);
//獲取總行數,獲取的是最後一行的編號(編號從0開始)
int rowNum = sheet.getLastRowNum();

然後拿到excel對象循環解析從50開始到100即可。

⑤ java poi 怎麼讀取Excel中合並單元格的值,我讀取合並單元格的第一個格有值,其他的都是空。

/**
* 獲取合並單元格的值
* @param sheet
* @param row
* @param column
* @return
*/
public String getMergedRegionValue(Sheet sheet, int row, int column) {
int sheetMergeCount = sheet.getNumMergedRegions();

for (int i = 0; i < sheetMergeCount; i++) {
CellRangeAddress ca = sheet.getMergedRegion(i);
int firstColumn = ca.getFirstColumn();
int lastColumn = ca.getLastColumn();
int firstRow = ca.getFirstRow();
int lastRow = ca.getLastRow();

if (row >= firstRow && row <= lastRow) {
if (column >= firstColumn && column <= lastColumn) {
Row fRow = sheet.getRow(firstRow);
Cell fCell = fRow.getCell(firstColumn);

return getCellValue(fCell);
}
}
}

return null;
}

⑥ 用java從excel文檔中讀取指定數據求解答

HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(
file));
// 獲得第一個工作表對象
HSSFSheet sheet = workbook.getSheetAt(0);
// 得到有效的行數
int countRows = sheet.getLastRowNum();
int countColumns = 0;
//第一行為表頭,從第二行開始讀數據
for (int i = 1; i <= countRows; i++) {
// 獲取行對象
HSSFRow row = sheet.getRow(i);
if (row == null)
continue;
// 一行的單元格數量
countColumns = row.getLastCellNum();
for (int j = 0; j < countColumns; j++) {
// 獲取單元格
HSSFCell cell = row.getCell(j);
String strCell = "";
if (null != cell) {
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_NUMERIC:// 數字類型
.........
break;
}
}
}
}

⑦ java poi怎麼獲取excel單元格的內容

js">packagee.sjtu.erplab.poi;

importjava.io.InputStream&ch=ww.xqy.chain"target="_blank"class="link-ke">FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.IOException;
importjava.io.InputStream;
importjava.text.SimpleDateFormat;
importjava.util.Date;
importjava.util.HashMap;
importjava.util.Map;

importorg.apache.poi.hssf.usermodel.HSSFCell;
importorg.apache.poi.hssf.usermodel.HSSFDateUtil;
importorg.apache.poi.hssf.usermodel.HSSFRow;
importorg.apache.poi.hssf.usermodel.HSSFSheet;
importorg.apache.poi.hssf.usermodel.HSSFWorkbook;
importorg.apache.poi.poifs.filesystem.POIFSFileSystem;

/**
*操作Excel表格的功能類
*/
publicclassExcelReader{
privatePOIFSFileSystemfs;
privateHSSFWorkbookwb;
privateHSSFSheetsheet;
privateHSSFRowrow;

/**
*讀取Excel表格表頭的內容
*@paramInputStream
*@returnString表頭內容的數組
*/
publicString[]readExcelTitle(InputStreamis){
try{
fs=newPOIFSFileSystem(is);
wb=newHSSFWorkbook(fs);
}catch(IOExceptione){
e.printStackTrace();
}
sheet=wb.getSheetAt(0);
row=sheet.getRow(0);
//標題總列數
intcolNum=row.getPhysicalNumberOfCells();
System.out.println("colNum:"+colNum);
String[]title=newString[colNum];
for(inti=0;i<colNum;i++){
//title[i]=getStringCellValue(row.getCell((short)i));
title[i]=getCellFormatValue(row.getCell((short)i));
}
returntitle;
}

/**
*讀取Excel數據內容
*@paramInputStream
*@returnMap包含單元格數據內容的Map對象
*/
publicMap<Integer,String>readExcelContent(InputStreamis){
Map<Integer,String>content=newHashMap<Integer,String>();
Stringstr="";
try{
fs=newPOIFSFileSystem(is);
wb=newHSSFWorkbook(fs);
}catch(IOExceptione){
e.printStackTrace();
}
sheet=wb.getSheetAt(0);
//得到總行數
introwNum=sheet.getLastRowNum();
row=sheet.getRow(0);
intcolNum=row.getPhysicalNumberOfCells();
//正文內容應該從第二行開始,第一行為表頭的標題
for(inti=1;i<=rowNum;i++){
row=sheet.getRow(i);
intj=0;
while(j<colNum){
//每個單元格的數據內容用"-"分割開,以後需要時用String類的replace()方法還原數據
//也可以將每個單元格的數據設置到一個javabean的屬性中,此時需要新建一個javabean
//str+=getStringCellValue(row.getCell((short)j)).trim()+
//"-";
str+=getCellFormatValue(row.getCell((short)j)).trim()+"";
j++;
}
content.put(i,str);
str="";
}
returncontent;
}

/**
*獲取單元格數據內容為字元串類型的數據
*
*@paramcellExcel單元格
*@returnString單元格數據內容
*/
(HSSFCellcell){
StringstrCell="";
switch(cell.getCellType()){
caseHSSFCell.CELL_TYPE_STRING:
strCell=cell.getStringCellValue();
break;
caseHSSFCell.CELL_TYPE_NUMERIC:
strCell=String.valueOf(cell.getNumericCellValue());
break;
caseHSSFCell.CELL_TYPE_BOOLEAN:
strCell=String.valueOf(cell.getBooleanCellValue());
break;
caseHSSFCell.CELL_TYPE_BLANK:
strCell="";
break;
default:
strCell="";
break;
}
if(strCell.equals("")||strCell==null){
return"";
}
if(cell==null){
return"";
}
returnstrCell;
}

/**
*獲取單元格數據內容為日期類型的數據
*
*@paramcell
*Excel單元格
*@returnString單元格數據內容
*/
privateStringgetDateCellValue(HSSFCellcell){
Stringresult="";
try{
intcellType=cell.getCellType();
if(cellType==HSSFCell.CELL_TYPE_NUMERIC){
Datedate=cell.getDateCellValue();
result=(date.getYear()+1900)+"-"+(date.getMonth()+1)
+"-"+date.getDate();
}elseif(cellType==HSSFCell.CELL_TYPE_STRING){
Stringdate=getStringCellValue(cell);
result=date.replaceAll("[年月]","-").replace("日","").trim();
}elseif(cellType==HSSFCell.CELL_TYPE_BLANK){
result="";
}
}catch(Exceptione){
System.out.println("日期格式不正確!");
e.printStackTrace();
}
returnresult;
}

/**
*根據HSSFCell類型設置數據
*@paramcell
*@return
*/
(HSSFCellcell){
Stringcellvalue="";
if(cell!=null){
//判斷當前Cell的Type
switch(cell.getCellType()){
//如果當前Cell的Type為NUMERIC
caseHSSFCell.CELL_TYPE_NUMERIC:
caseHSSFCell.CELL_TYPE_FORMULA:{
//判斷當前的cell是否為Date
if(HSSFDateUtil.isCellDateFormatted(cell)){
//如果是Date類型則,轉化為Data格式

//方法1:這樣子的data格式是帶時分秒的:2011-10-120:00:00
//cellvalue=cell.getDateCellValue().toLocaleString();

//方法2:這樣子的data格式是不帶帶時分秒的:2011-10-12
Datedate=cell.getDateCellValue();
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
cellvalue=sdf.format(date);

}
//如果是純數字
else{
//取得當前Cell的數值
cellvalue=String.valueOf(cell.getNumericCellValue());
}
break;
}
//如果當前Cell的Type為STRIN
caseHSSFCell.CELL_TYPE_STRING:
//取得當前的Cell字元串
cellvalue=cell.getRichStringCellValue().getString();
break;
//默認的Cell值
default:
cellvalue="";
}
}else{
cellvalue="";
}
returncellvalue;

}

publicstaticvoidmain(String[]args){
try{
//對讀取Excel表格標題測試
InputStreamis=newFileInputStream("d:\test2.xls");
ExcelReaderexcelReader=newExcelReader();
String[]title=excelReader.readExcelTitle(is);
System.out.println("獲得Excel表格的標題:");
for(Strings:title){
System.out.print(s+"");
}

//對讀取Excel表格內容測試
InputStreamis2=newFileInputStream("d:\test2.xls");
Map<Integer,String>map=excelReader.readExcelContent(is2);
System.out.println("獲得Excel表格的內容:");
for(inti=1;i<=map.size();i++){
System.out.println(map.get(i));
}

}catch(FileNotFoundExceptione){
System.out.println("未找到指定路徑的文件!");
e.printStackTrace();
}
}
}

⑧ java如何讀取整個excel文件的內容

在Java中讀取Excel文件的內容

在這里,我使用的是一個叫Java Excel API的東西,類似的還有jakarta的POI,不過感覺那個

太復雜了點兒。而且jxl對中文的支持相當的好,至少我在用的過程中一點問題沒出。

一、下載地址

http://www.andykhan.com/jexcelapi/

二、特性

可以讀取Excel 95, 97, 2000文件

可以讀或寫Excel 97及其以後版本的的公式(不過我發現好像有bug)

生成Excel 97格式的電子表格

支持字體、數字和日期格式化

支持單元格的顏色和陰影

可以編輯現有的文件

三、讀文件

//聲明一下,記得後面要關閉哦。。

Workbook workbook = null;

try {

workbook = Workbook.getWorkbook(new File("d:\temp\TestRead.xls"));

} catch (Exception e) {

throw new Exception("file to import not found!");

}

Sheet sheet = workbook.getSheet(0);

Cell cell = null;

int columnCount=3;

int rowCount=sheet.getRows();

for (int i = 0; i<rowcount; p="" {

for (int j = 0; j<columncount; p="" {

//注意,這里的兩個參數,第一個是表示列的,第二才表示行

cell=sheet.getCell(j, i);

//要根據單元格的類型分別做處理,否則格式化過的內容可能會不正確

if(cell.getType()==CellType.NUMBER){

System.out.print(((NumberCell)cell).getValue());

}

else if(cell.getType()==CellType.DATE){

System.out.print(((DateCell)cell).getDate());

}

else{

System.out.print(cell.getContents());

}

//System.out.print(cell.getContents());

System.out.print(" ");

}

System.out.print(" ");

}

//關閉它,否則會有內存泄露

workbook.close();

⑨ 我想用java來讀取Excel文件的某行某列,就是指定讀取某個位置的數據,然後顯示出來!怎麼弄求

工作中用到的導入excel一個方法,你還可以通過一些插件導入,代碼要你自己了,基本原理如下...
public Object importDoucument(MultipartFile uploadfile)
{
StringBuffer resultMessage = new StringBuffer();

ExcelImport excelImport = new ExcelImport();
Sheet sheet = null;
try
{
// 驗證文件格式 如不出錯 返回工作簿
excelImport.verifyExeclFile(uploadfile);
ExcelBean excelBean = excelImport.getExcelBean();
if (null != excelBean)
{
sheet = excelBean.getSheet();
}
//導入excel文件分析整理出list對象
List<StcCoreElements> dataList = getAssessCateRange(sheet, "戰略要素名稱", "戰略要素名稱", 2, 1);

int num = 0;
if(dataList.size()>0){
for (StcCoreElements itemStcVO : dataList)
{
StcCoreElements stcCoreElementsVo = nitemStcVO

//*****修改些處
this.save(stcCoreElementsVo);
++num;
}
}
resultMessage.append("已成功導入 "+num+" 條核心要素信息");
}
catch (Exception e)
{
resultMessage.append(e.getMessage());
e.printStackTrace();
}
finally
{
excelImport.close();
}

return resultMessage;
}

private List<StcCoreElements> getAssessCateRange(Sheet sheet, String startName, String endName, int rowNum, int titleRowNum)
{
int[] cateRange = new int[2];
List<StcCoreElements> dataList = new ArrayList<StcCoreElements>();
int lastRowNumber = sheet.getLastRowNum();
Row cateRow = sheet.getRow(rowNum - 1);
Cell cateCell = cateRow.getCell(0);
String cateCellValue = ImportExcelUtil.getCellValue(cateCell, sheet);
if (StringUtils.isNotBlank(cateCellValue))
{
if (StringUtils.startsWith(cateCellValue, startName))
{
cateRange[0] = rowNum + titleRowNum;
}
}
String currentCellValue0 = "";
do
{
Row currentRow = sheet.getRow(rowNum);
StcCoreElements info =new StcCoreElements();

Cell currentCell0 = currentRow.getCell(0);
currentCellValue0 = ImportExcelUtil.getCellValue(currentCell0, sheet);
info.setOverallPlan(currentCellValue0);

dataList.add(info);

rowNum++;
} while (rowNum <= lastRowNumber);

return dataList;
}

閱讀全文

與java讀取excel單元格數相關的資料

熱點內容
文件系統鎖定怎樣解除 瀏覽:191
applepay綁定設備 瀏覽:396
d盤的壓縮文件如何解壓 瀏覽:750
哪個編程軟體適合新手 瀏覽:952
在桌面建造一個文件夾 瀏覽:683
java中文簡繁體轉換工具 瀏覽:157
c好看的登陸界面代碼 瀏覽:622
系統自帶信息非默認程序 瀏覽:668
網站有專利兩個字被罰要多少錢 瀏覽:84
手機儲存文件的路徑 瀏覽:771
三作標需要什麼文件格式 瀏覽:585
該應用與手機中的版本簽名不一致 瀏覽:239
linux文件命名 瀏覽:480
win10如何開游戲模式 瀏覽:622
hacknet創建文件夾 瀏覽:730
什麼語言做app 瀏覽:922
應用數據哪些可清理 瀏覽:976
數據區域下移一行該怎麼辦 瀏覽:679
華為賬號用qq注冊賬號 瀏覽:327
台達plc編程完成怎麼試運行 瀏覽:412

友情鏈接