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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

java 读取excel_Java12POI操作Excel

發布時間:2023/11/27 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 读取excel_Java12POI操作Excel 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??????? Apache POI是一個開源的利用Java讀寫Excel,WORD等微軟OLE2組件文檔的項目。

????????我的需求是對Excel的數據進行導入或將數據以Excel的形式導出。

先上簡單的測試代碼:

package com.xing.studyTest.poi;import java.io.FileInputStream;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.ss.usermodel.WorkbookFactory;import lombok.extern.slf4j.Slf4j;/** *  學習POI處理Excel * @author xinghua * */@Slf4jpublic class POIStudy {  public static void main(String[] args) {    String fileName = "/Users/xinghua/Downloads/indicators.xlsx";    try {      InputStream inputStream = new FileInputStream(fileName);          Workbook workbook = WorkbookFactory.create(inputStream);      Sheet sheet = workbook.getSheetAt(0);//獲取sheet頁面      int begin = sheet.getFirstRowNum();      int end = sheet.getLastRowNum();      log.info("sheet頁名稱為:"+sheet.getSheetName()+"| 最后一行為:"+begin+"-"+end);      Row firstRow = sheet.getRow(sheet.getFirstRowNum());//第一行標題      Row towRow = sheet.getRow(sheet.getFirstRowNum()+1);//第二行字段        List titleList = new ArrayList<>();        List fieldList = new ArrayList<>();        for (int i = 0; i          titleList.add(firstRow.getCell(i).getStringCellValue());          fieldList.add(towRow.getCell(i).getStringCellValue());        }        log.info("2.獲取字段列表ok | 字段個數:"+fieldList.size()+"個。");        log.info(fieldList.toString());    } catch (Exception e) {      e.printStackTrace();    }          }  }

可以看到控制臺輸出了所有的信息,和下列Excel文件中一致:

Workbook

????????Workbook 是一個接口,表示Excel工作簿,它也是創建新工作表等的頂層對象。

????????子類有:

?????????HSSFWorkbook 工作簿 HSSF:MS-Excel 97-2003(.xls),基于BIFF8格式的JAVA接口。

?????XSSFWorkbook SpreadsheetML工作簿 XSSF:MS-Excel 2007+(.xlsx),基于OOXML格式的JAVA接口。

? ? ? ? ?SXSSFWorkbook 寫入非常大的文件時用它 子類 SXSSFWorkbookWithCustomZipEntrySource?

????????HSSF 是Horrible SpreadSheet Format的縮寫,通過HSSF,你可以用純Java代碼來讀取、寫入、修改Excel文件。HSSF 為讀取操作提供了兩類API:usermodel和eventusermodel,即“用戶模型”和“事件-用戶模型”。

????????用HSSFSheet、HSSFCell等各種對象來代表 頁、行、單元格、字體等等。

????????我大致查看了Workbook的函數,功能很多,不一一嘗試了,用的時候直接在下面找就好:

Workbook 中的函數int getActiveSheetIndex(); //獲取活動工作表void setActiveSheet(int sheetIndex);//設置活動工作表int getFirstVisibleTab(); //獲取excel中選項卡列表中顯示的第一個選項卡void setFirstVisibleTab(int sheetIndex);//設置在excel的選項卡列表中顯示的第一個選項卡。void setSheetOrder(String sheetname, int pos); //設置給定工作表的外觀順序。void setSelectedTab(int index); //設置打開工作表時實際看到其數據的選項卡。void setSheetName(int sheet, String name); //設置工作表名稱。String getSheetName(int sheet); //獲取工作表名稱int getSheetIndex(String name); //按姓名返回工作表的索引int getSheetIndex(Sheet sheet); //返回給定工作表的索引Sheet createSheet(); //為此工作簿創建一個工作表,將其添加到工作表中并返回高層代表。用它來創建新的工作表。Sheet createSheet(String sheetname); //為此工作簿創建新工作表,并返回高級表示。用它來創建新的工作表。Sheet cloneSheet(int sheetNum); //從工作簿中的現有工作表創建一個工作表。IteratorsheetIterator(); //按工作表順序返回工作簿中工作表的迭代器。包括隱藏的和非常隱藏的表。int getNumberOfSheets(); //獲取工作簿中電子表格的數量Sheet getSheetAt(int index); //獲取給定索引處的工作表對象。Sheet getSheet(String name); //獲取具有給定名稱的工作表void removeSheetAt(int index); //移除給定索引處的工作表Font createFont(); //創建新字體并將其添加到工作簿的字體表中Font findFont(boolean bold, short color, short fontHeight, String name, boolean italic, boolean strikeout, short typeOffset, byte underline); //查找與提供的屬性相匹配的字體int getNumberOfFontsAsInt(); //獲取字體表中的字體數量Font getFontAt(int idx); //獲取給定索引號處的字體CellStyle createCellStyle(); //創建新的單元格樣式,并將其添加到工作簿的樣式表中int getNumCellStyles(); //獲取工作簿包含的樣式數量CellStyle getCellStyleAt(int idx); //獲取給定索引處的單元格樣式對象void write(OutputStream stream) throws IOException; //將此工作簿寫出到輸出流中。void close() throws IOException; //關閉從中讀取工作簿的基礎輸入資源(文件或流)。一旦調用了這個函數,就不要再調用了。應該對工作簿執行操作、更新或讀取。int getNumberOfNames(); //返回此工作簿中已定義名稱的總數Name getName(String name); //具有指定名稱的已定義名稱。如果未找到,則為null。List extends Name> getNames(String name); //返回具有給定名稱的所有已定義名稱。List extends Name> getAllNames(); //返回已定義名稱的列表。如果沒有找到,則返回空列表。Name createName(); //在此工作簿中創建新的(未初始化的)定義名稱void removeName(Name name); //刪除已定義的名稱int linkExternalWorkbook(String name, Workbook workbook);  //添加允許引用指定外部工作簿的公式添加到此工作簿所需的鏈接。如"[我的工作簿]工作表3!$ a5”要添加到文件中,必須先記錄一些鏈接信息。給定的外部工作簿鏈接后,就可以添加使用它的公式。每個工作簿只需要鏈接一次。這種鏈接僅適用于編寫公式。void setPrintArea(int sheetIndex, String reference); //為提供的工作表設置打印區域void setPrintArea(int sheetIndex, int startColumn, int endColumn, int startRow, int endRow); //為了方便Java程序員維護指針。String getPrintArea(int sheetIndex); //檢索指定工作表的打印區域的引用,即使沒有指定,工作表名稱也會附加到引用中。如果沒有定義打印區域,則返回空字符串void removePrintArea(int sheetIndex); //刪除指定工作表的打印區域MissingCellPolicy getMissingCellPolicy(); //檢索當前策略,該策略規定當從行中獲取缺失或空白單元格時應做什么。默認值是返回空白和空單元格。void setMissingCellPolicy(MissingCellPolicy missingCellPolicy); //設置從行中獲取缺失或空白單元格時的處理策略DataFormat createDataFormat(); //返回此工作簿的數據格式實例。int addPicture(byte[] pictureData, int format); //向工作簿添加圖片。List extends PictureData> getAllPictures(); //從工作簿中獲取所有圖片CreationHelper getCreationHelper(); //返回一個對象,該對象處理HSSF和XSF所需的各種實例的具體類的實例化。boolean isHidden(); //如果此工作簿在圖形用戶界面中不可見,則返回falsevoid setHidden(boolean hiddenFlag); //設置是否隱藏 boolean isSheetHidden(int sheetIx); //檢查工作表是否隱藏。boolean isSheetVeryHidden(int sheetIx); //檢查Sheet是否非常隱蔽。void setSheetHidden(int sheetIx, boolean hidden); //隱藏或取消隱藏工作表。SheetVisibility getSheetVisibility(int sheetIx); //獲取此工作簿中工作表的可見性(可見、隱藏、非常隱藏)void setSheetVisibility(int sheetIx, SheetVisibility visibility);  //隱藏或取消隱藏工作表。請注意,當前設置為活動工作表的工作表(新創建的工作簿中的工作表0或通過setActiveSheet()設置的工作表)不能隱藏。void addToolPack(UDFFinder toopack); //在此工作簿中注冊新的工具包。void setForceFormulaRecalculation(boolean value); //打開工作簿時,應用程序是否應執行完全重新計算。boolean getForceFormulaRecalculation(); //打開工作簿時是否要求Excel重新計算所有公式。SpreadsheetVersion getSpreadsheetVersion(); //返回此工作簿的電子表格版本int addOlePackage(byte[] oleData, String label, String fileName, String command) throws IOException; //將具有給定內容的OLE包管理器對象添加到工作表中

女神鎮樓

End

總結

以上是生活随笔為你收集整理的java 读取excel_Java12POI操作Excel的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。