如何在不將java數據庫視爲數據庫並且不使用任何其他外部API的情況下讀取一個Excel表格。在Java中讀取Excel文件(簡單JSP和Servlet)
3
A
回答
1
1
你不行。
Java SE和EE API不支持讀取Excel電子表格。 (嗯,我想你可以花幾個月閱讀Excel規範並從頭開發自己的電子表格閱讀器,但是這樣做會浪費我的努力,只是使用你拒絕的替代方案之一)。
回覆:電子表格轉換爲CSV和讀取的方法:
- 這是不讀的電子表格。
- 它需要一個外部應用程序(例如Excel)來執行從電子表格到CSV的轉換。
- 這是有損。您只能閱讀電子表格的簡單數據內容。其他一切都消失了。
0
試試這個
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.CellType;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class ReadExcel {
private String inputFile;
public void setInputFile(String inputFile) {
this.inputFile = inputFile;
}
public void read() throws IOException {
File inputWorkbook = new File(inputFile);
Workbook w;
try {
w = Workbook.getWorkbook(inputWorkbook);
// Get the first sheet
Sheet sheet = w.getSheet(0);
// Loop over first 10 column and lines
for (int j = 0; j < sheet.getColumns(); j++) {
for (int i = 0; i < sheet.getRows(); i++) {
Cell cell = sheet.getCell(j, i);
CellType type = cell.getType();
if (cell.getType() == CellType.LABEL) {
System.out.println("I got a label "
+ cell.getContents());
}
if (cell.getType() == CellType.NUMBER) {
System.out.println("I got a number "
+ cell.getContents());
}
}
}
} catch (BiffException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws IOException {
ReadExcel test = new ReadExcel();
test.setInputFile("c:/temp/lars.xls");
test.read();
}
}
1
你必須使用Apache POI讀取XLS和XLSX文件
您可以根據您的memeory限制使用HSSF,XSSF,SXSSF ....
4
有沒有直接的方式來處理Java中的Excel工作表。您應該使用Apache POI Java API。
Apache POI是一個Java庫,用於基於OLE2和OOXML(如XLS和DOCX)讀取和寫入各種Microsoft文件格式,尤其是與Office相關的文件格式。
我們來看一個閱讀Excel工作表的例子。它支持xls
和xlsx
文件格式。
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
private Vector importExcelSheet(String fileName)
{
Vector cellVectorHolder = new Vector();
try
{
Workbook workBook = WorkbookFactory.create(new FileInputStream(fileName));
Sheet sheet = workBook.getSheetAt(0);
Iterator rowIter = sheet.rowIterator();
while(rowIter.hasNext())
{
XSSFRow row = (XSSFRow) rowIter.next();
Iterator cellIter = row.cellIterator();
Vector cellStoreVector=new Vector();
while(cellIter.hasNext())
{
XSSFCell cell = (XSSFCell) cellIter.next();
cellStoreVector.addElement(cell);
}
cellVectorHolder.addElement(cellStoreVector);
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
return cellVectorHolder;
}
調用上面的方法,返回Vector
如下。
Vector dataHolder=importExcelSheet("Excel_file.xlsx");
注:這裏使用的Vector
僅僅是一個示範。一個人不應該使用它,因爲它在Java中已經過時了。使用Java Collection框架中提供的其他類型的集合。
相關問題
- 1. 從Java Servlet讀取文件
- 2. 如何使用servlet讀取excel文件jsp
- 3. 從.NET中讀取Excel和Word文件的最簡單方法
- 4. 在java中讀取excel文件?
- 5. 的Java讀取Excel文件
- 6. JAVA讀取excel文件
- 7. OpenXML,SAX和簡單讀取Xlsx文件
- 8. JSP表單和Servlet
- 9. 在單列中讀取包含多個值的Excel文件-Java
- 10. 如何使用JSP和Servlet在Java中上傳文件?
- 11. 讀取java中的excel文件
- 12. jsp從servlet中讀取文件名不可能?
- 13. 從servlet類讀取XML文件並在JSP頁面上顯示
- 14. 在java中使用Apache POI讀取和寫入excel文件
- 15. 從文件中讀取C++(簡單)
- 16. 如何在jsp中讀取excel
- 17. JSP和Java Servlet問題
- 18. 在戰爭中共享JSP文件,在java中使用forward Servlet
- 19. 在java中讀取和上傳文件
- 20. 如何在Java Servlet中使用Rcaller並讀取CSV文件
- 21. 從Java中的JSON文件讀取最簡單的方法?
- 22. 使用Java讀取excel文件
- 23. 讀取Excel文件
- 24. 讀取Excel文件
- 25. 讀取excel文件
- 26. JSP屬性文件讀取
- 27. 從jsp文件讀取xml
- 28. 異常在servlet jsp和servlet中的java.lang.NullPointerException
- 29. 在Java中閱讀Excel文件(.xls)
- 30. R甚至不讀取在Excel中創建/轉換的簡單CSV文件
在Java中沒有直接的方式來處理Excel工作表。您應該使用[Apache POI](http://poi.apache.org/download.html)Java API。 – Lion 2012-04-21 09:23:32
爲什麼你不能添加外部庫? – 2012-11-14 08:49:44
你可以閱讀csv的核心Java,這個鏈接可能有助於http://www.daniweb。java/threads/17262/read-in-a-.csv-file-and-load-the-data-into-an-array謝謝 Abhi – abhi 2012-04-21 09:28:13