一般都是用poi技術(shù)去讀取excel表格的,但是這個(gè)技術(shù)又是什么呢
Apache POI是一種流行的API,它允許程序員使用Java程序創(chuàng)建,修改和顯示MS Office文件。這由Apache軟件基金會(huì)開(kāi)發(fā)使用Java分布式設(shè)計(jì)或修改Microsoft Office文件的開(kāi)源庫(kù)。它包含類(lèi)和方法對(duì)用戶(hù)輸入數(shù)據(jù)或文件到MS Office文檔進(jìn)行解碼。
Apache POI是Apache軟件基金會(huì)提供的100%開(kāi)源庫(kù)。大多數(shù)中小規(guī)模的應(yīng)用程序開(kāi)發(fā)主要依賴(lài)于Apache POI(HSSF+ XSSF)。它支持Excel 庫(kù)的所有基本功能; 然而,呈現(xiàn)和文本提取是它的主要特點(diǎn)。
?
?
立即學(xué)習(xí)“Java免費(fèi)學(xué)習(xí)筆記(深入)”;
這是創(chuàng)建或維護(hù)Excel工作簿的所有類(lèi)的超接口。它屬于org.apache.poi.ss.usermodel包。是實(shí)現(xiàn)此接口的兩個(gè)類(lèi),如下所示:
HSSFWorkbook?: 這個(gè)類(lèi)有讀取和.xls 格式和寫(xiě)入Microsoft Excel文件的方法。它與微軟Office97-2003版本兼容。
XSSFWorkbook?: 這個(gè)類(lèi)有讀寫(xiě)Microsoft Excel和OpenOffice的XML文件的格式.xls或.xlsx的方法。它與MS-Office版本2007或更高版本兼容。
它是在org.apache.poi.hssf.usermodel包的高層次的類(lèi)。它實(shí)現(xiàn)了Workbook 接口,用于Excel文件中的.xls格式。下面列出的是一些本類(lèi)下的方法和構(gòu)造函數(shù)。
S.No. | 構(gòu)造函數(shù)和說(shuō)明 |
---|---|
1 |
HSSFWorkbook() 從頭開(kāi)始創(chuàng)建一個(gè)新的HSSFWorkbook對(duì)象時(shí)。 |
2 |
HSSFWorkbook(DirectoryNode directory, boolean preserveNodes) 創(chuàng)建一個(gè)特定的目錄中一個(gè)新的HSSFWworkbook對(duì)象。 |
3 |
HSSFWorkbook(DirectoryNode directory, POIFSFileSystem fs, boolean preserveNodes) 給定一個(gè)POIFSFileSystem對(duì)象和特定的目錄中,它創(chuàng)建了一個(gè)SSFWorkbook對(duì)象讀取指定的工作簿。 |
4 |
HSSFWorkbook(java.io.InputStream s) 創(chuàng)建使用輸入流中的新HSSFWorkbook對(duì)象時(shí)。 |
5 |
HSSFWorkbook(java.io.InputStream s, boolean preserveNodes) 構(gòu)建在輸入流的POI文件系統(tǒng)。 |
6 |
HSSFWorkbook(POIFSFileSystem fs) 使用POIFSFileSystem對(duì)象構(gòu)造的新HSSFWorkbook對(duì)象時(shí)。 |
7 |
HSSFWorkbook(POIFSFileSystem fs, boolean preserveNodes) 給定一個(gè)POIFSFileSystem對(duì)象時(shí),它會(huì)創(chuàng)建一個(gè)新的HSSFWorkbook對(duì)象時(shí)讀取指定的工作簿。 |
這些構(gòu)造內(nèi)的常用參數(shù):
directory?: 這是從POI文件系統(tǒng)處理的目錄。
fs?:它是包含簿流該P(yáng)OI的文件系統(tǒng)。
preservenodes?: 這是決定是否保留其他節(jié)點(diǎn)像宏的可選參數(shù)。它消耗大量的內(nèi)存,因?yàn)樗鎯?chǔ)在內(nèi)存中的所有POIFileSystem(如果設(shè)置)。
注意:HSSFWorkbook類(lèi)包含了許多方法;然而,它們僅與XLS格式兼容。在本教程中,重點(diǎn)是在Excel文件格式的最新版本。因此,HSSFWorkbook類(lèi)的方法,這里沒(méi)有列出。如果需要這些類(lèi)的方法,那么請(qǐng)參照POI-HSSFWorkbook類(lèi)API在?https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html.
它是用于表示高和低層次Excel文件格式的類(lèi)。它屬于org.apache.xssf.usemodel包,并實(shí)現(xiàn)Workbook接口。下面列出的是這個(gè)類(lèi)的方法和構(gòu)造函數(shù)。
S.No. | 構(gòu)造函數(shù)和說(shuō)明 |
---|---|
1 |
XSSFWorkbook() 從頭開(kāi)始創(chuàng)建一個(gè)新的XSSFworkbook對(duì)象。 |
2 |
XSSFWorkbook(java.io.File file) 構(gòu)造從給定文件中的XSSFWorkbook對(duì)象。 |
3 |
XSSFWorkbook(java.io.InputStream is) 構(gòu)造一個(gè)XSSFWorkbook對(duì)象,通過(guò)緩沖整個(gè)輸入流到內(nèi)存中,然后為它打開(kāi)一個(gè)OPCPackage對(duì)象。 |
4 |
XSSFWorkbook(java.lang.String path) 構(gòu)建一個(gè)給定文件的完整路徑的XSSFWorkbook對(duì)象。 |
?
立即學(xué)習(xí)“Java免費(fèi)學(xué)習(xí)筆記(深入)”;
?
立即學(xué)習(xí)“Java免費(fèi)學(xué)習(xí)筆記(深入)”;
Sheet是在org.apache.poi.ss.usermodel包的接口,它是創(chuàng)建具有特定名稱(chēng)的高或低級(jí)別的電子表格的所有類(lèi)的超接口。電子表格的最常見(jiàn)的類(lèi)型是工作表,它被表示為單元的網(wǎng)格。
這是在org.apache.poi.hssf.usermodel包的類(lèi)。它可以創(chuàng)建Excel電子表格,它允許在sheet 方式和表數(shù)據(jù)格式。
S.No. | 構(gòu)造函數(shù)及描述 |
---|---|
1 |
HSSFSheet(HSSFWorkbook workbook) 創(chuàng)建新HSSFSheet通過(guò)調(diào)用HSSFWorkbook從頭開(kāi)始創(chuàng)建一個(gè)表。 |
2 |
HSSFSheet(HSSFWorkbook workbook, InternalSheet sheet) 創(chuàng)建HSSFSheet表示給定表對(duì)象。 |
這是代表了Excel電子表格的高級(jí)別代表的一類(lèi)。這在org.apache.poi.hssf.usermodel包下。
S.No. | 構(gòu)造函數(shù)及描述 |
---|---|
1 |
XSSFSheet() 創(chuàng)造了新的XSSFSheet- 調(diào)用XSSFWorkbook從頭開(kāi)始創(chuàng)建一個(gè)表。 |
2 |
XSSFSheet(PackagePart part, PackageRelationship rel) 創(chuàng)建XSSFSheet表示給定包的一部分和關(guān)系。 |
S.No. | 方法和描述 |
---|---|
1 |
addMergedRegion(CellRangeAddress region) 添加單元的合并區(qū)域(因此這些單元格合并形成一個(gè))。 |
2 |
autoSizeColumn(int column) 調(diào)整列寬,以適應(yīng)的內(nèi)容。 |
3 |
iterator() 此方法是用于rowIterator()的別名,以允許foreach循環(huán) |
4 |
addHyperlink(XSSFHyperlink hyperlink) 注冊(cè)超鏈接的集合中的超鏈接此工作表格上 |
對(duì)于此類(lèi)的其余的方法,請(qǐng)參閱完整的API在:
https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFSheet.html.
這是在org.apache.poi.ss.usermodel包的接口。它是用于一排的電子表格的高層表示。它是代表了POI庫(kù)的行所有類(lèi)的超接口。
這是在org.apache.poi.xssf.usermodel包的類(lèi)。它實(shí)現(xiàn)了Row接口,因此它可以在電子表格中創(chuàng)建行。下面列出的是這個(gè)類(lèi)在方法和構(gòu)造函數(shù)。
S.No. | 描述 |
---|---|
1 |
createCell(int columnIndex) 創(chuàng)建新單元行并返回。 |
2 |
setHeight(short height) 設(shè)置短單位的高度。 |
對(duì)于此類(lèi)的其余的方法,參考如下鏈接:
https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFRow.html
這是在org.apache.poi.ss.usermodel包的接口。它是代表了單元在電子表格中的行中的所有類(lèi)的超接口。
單元格可以使用各種屬性,例如空白,數(shù)字,日期,錯(cuò)誤等單元格被添加到一個(gè)行之前應(yīng)具有(基于0)自己的編號(hào)。
這是在 org.apache.poi.xssf.usermodel 包的類(lèi)。它實(shí)現(xiàn)了單元格界面。它是單元在電子表格中的行的一個(gè)高層次的表示。
?
立即學(xué)習(xí)“Java免費(fèi)學(xué)習(xí)筆記(深入)”;
現(xiàn)在我用Java實(shí)現(xiàn)讀取excel表格
代碼實(shí)現(xiàn)
public static void excel() throws Exception { //用流的方式先讀取到你想要的excel的文件 FileInputStream fis=new FileInputStream(new File(System.getProperty("user.dir")+"/src/excel.xls")); //解析excel POIFSFileSystem pSystem=new POIFSFileSystem(fis); //獲取整個(gè)excel HSSFWorkbook hb=new HSSFWorkbook(pSystem); System.out.println(hb.getNumCellStyles()); //獲取第一個(gè)表單sheet HSSFSheet sheet=hb.getSheetAt(0); //獲取第一行 int firstrow= sheet.getFirstRowNum(); //獲取最后一行 int lastrow= sheet.getLastRowNum(); //循環(huán)行數(shù)依次獲取列數(shù) for (int i = firstrow; i < lastrow+1; i++) { //獲取哪一行i Row row=sheet.getRow(i); if (row!=null) { //獲取這一行的第一列 int firstcell= row.getFirstCellNum(); //獲取這一行的最后一列 int lastcell= row.getLastCellNum(); //創(chuàng)建一個(gè)集合,用處將每一行的每一列數(shù)據(jù)都存入集合中 List<String> list=new ArrayList<>(); for (int j = firstcell; j <lastcell; j++) { //獲取第j列 Cell cell=row.getCell(j); if (cell!=null) { System.out.print(cell+"\t"); list.add(cell.toString()); } } User user=new User(); if (list.size()>0) { user.setUsername(list.get(1)); user.setPassword(list.get(2)); } BaseDAO dao=new BaseDAO(); dao.save(user); System.out.println(); } } fis.close(); }
?
立即學(xué)習(xí)“Java免費(fèi)學(xué)習(xí)筆記(深入)”;
以上就是Java讀取excel的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
全網(wǎng)最新最細(xì)最實(shí)用WPS零基礎(chǔ)入門(mén)到精通全套教程!帶你真正掌握WPS辦公! 內(nèi)含Excel基礎(chǔ)操作、函數(shù)設(shè)計(jì)、數(shù)據(jù)透視表等
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)