2013-07-09 12 views
5

Mam istniejący plik (C: \ wb.xls), który chcę otworzyć i wprowadzić zmiany. W jaki sposób w Apachie POI otwierasz istniejący plik? Cała dokumentacja, którą znajduję, musi iść z tworzeniem nowego pliku. A jeśli wiesz, w jaki sposób wstawić nowy wiersz na górze pliku Xls lub jak automatycznie sformatować szerokość kolumn?Otwórz EXISTING xls w Apache POI

+0

Sprawdź, czy ten poradnik pomoże: http://viralpatel.net/blogs/java-read-write-excel-file-apache-poi/ – cmbaxter

Odpowiedz

4

Czy próbowałeś czytać numer Apache POI HowTo "Reading or modifying an existing file"? To powinno obejmować cię ...

zasadzie, co będziemy chcieli zrobić, to podjąć z QuickGuide np this for loading a File

Workbook wb = WorkbookFactory.create(new File("MyExcel.xls")); 
Sheet s = wb.getSheetAt(0); 

// Get the 11th row, creating if not there 
Row r1 = s.getRow(10); 
if (r1 == null) r1 = s.createRow(10); 

// Get the 3rd column, creating if not there 
Cell c2 = r1.getCell(2, Row.CREATE_NULL_AS_BLANK); 
// Set a string to be the value 
c2.setCellValue("Hello, I'm the cell C10!"); 

// Save 
FileOutputStream out = new FileOutputStream("New.xls"); 
wb.write(out); 
out.close(); 
14

Użyj jednej spośród następujących

XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(xlFileAddress)); 

LUB

Workbook wb = WorkbookFactory.create(new File(xlFileAddress)); 

OR

Workbook wb = WorkbookFactory.create(new FileInputStream(xlFileAddress)); 

a następnie użyj polecenia wb do tworzenia/czytania/aktualizowania arkuszy/wierszy/komórek, co tylko chcesz. Szczegółowe informacje można znaleźć pod adresem here. To na pewno ci pomoże.

+1

Zauważ, że [otwarcie z 'InputStream' jest wolniejszy i wymaga większej ilości pamięci niż otwieranie z "pliku", jak wyjaśniono w dokumentach POI] (http://poi.apache.org/spreadsheet/quick-guide.html#FileInputStream) – Gagravarr

+0

Uwaga: jeśli używasz programu maven, musisz raczej mieć zależność od poi-ooxml niż poi, aby użyć klasy WorkbookFactory. –

Powiązane problemy