View Full Version : [JAVA] Office - Excel
joeykiske
26-07-2010, 17:40
Salve,
nel mio sw Java dovrei utilizzare un file predefinito (Master_Add.xls),excel,aggiungere i dati e salvarlo come Add_DataOdierna.xls .
Il problema è che utilizzando HSSF,quando provo ad inserire un valore in una cella mi elimina font,spaziatura,allineamento,ecc..ecc... dato che,nel master,sono presenti 16 fogli di lavoro e hanno tanti font con relativo carattere etc..non posso creare tanti font personalizzati.
Che libreria posso utilizzare che mi permetta di inserire un valore in una cella senza modificarne i parametri?
Grazie anticipatamente! :D
tomminno
26-07-2010, 20:16
Quando si ha a che fare con documenti Office, specialmente se complessi, la cosa migliore è lasciarli elaborare ad Office.
Richiamare COM?
joeykiske
26-07-2010, 21:54
Quando si ha a che fare con documenti Office, specialmente se complessi, la cosa migliore è lasciarli elaborare ad Office.
Richiamare COM?
come faccio a scrivere dei dati presi in un DB in Excel senza modificare i parametri (font,carattere) nella cella? ...non ho capito cosa intendi con "Richiamare COM?"
Grazie Anticipatamente! :p
tomminno
26-07-2010, 23:43
come faccio a scrivere dei dati presi in un DB in Excel senza modificare i parametri (font,carattere) nella cella? ...non ho capito cosa intendi con "Richiamare COM?"
Grazie Anticipatamente! :p
Sinceramente non ne ho idea, fortunatamente non ho mai avuto niente a che fare con Excel.
Con richiamare COM intendevo richiamare gli oggetti COM di Office per l'elaborazione dei file.
Ho idea che Java non sia il linguaggio più indicato per farlo.
banryu79
27-07-2010, 10:40
come faccio a scrivere dei dati presi in un DB in Excel senza modificare i parametri (font,carattere) nella cella? ...non ho capito cosa intendi con "Richiamare COM?"
Grazie Anticipatamente! :p
Ho guardato 5 minuti la documentazione (recuperata a partire da qua (http://poi.apache.org/)) e ho notato che una Cell ha un metodo getCellStyle che ti permettere di mettere le mani sull'oggetto CellStyle associato alla cella.
Quindi, a naso (sto tirando ad indovinare, non avendo mai usato questa libreria):
- recuperi il CellStyle della Cell
- modifichi il valore della Cell
- setti il CellStyle della Cell
... e il gioco è fatto (forse :D)
DanieleC88
27-07-2010, 11:16
... e il gioco è fatto (forse :D)
Sì, è fatto: all'epoca che usai POI feci la stessa cosa, mi pare.
joeykiske
27-07-2010, 17:28
Quindi, a naso (sto tirando ad indovinare, non avendo mai usato questa libreria):
- recuperi il CellStyle della Cell
- modifichi il valore della Cell
- setti il CellStyle della Cell
... e il gioco è fatto (forse :D)
Avevo già provato ad utilizzare il getCellStyle ma mi genera questa eccezione
Exception in thread "main" java.lang.NullPointerException
at InvoWork.main(InvoWork.java:53)
Inserisco il pezzo di codice del programma
InputStream inp = new FileInputStream("c:\\M_workbook.xls");
HSSFWorkbook wb = new HSSFWorkbook(inp);
HSSFCellStyle style; //definito in questo modo dopo aver consultato la doc
HSSFSheet sheet = wb.getSheetAt(0);
ArrayList<HSSFRow> row = new ArrayList<HSSFRow> ();
FOR (int i=0;i<10;i++)
{
row.add(i,sheet.createRow((i+1)));
}
for (int i=0;i<10;i++)
{
for (int j=0;j<10;j++)
{
int a = i+1 , b = j+1;
style = row.get(i).getCell(i).getCellStyle();
row.get(i).createCell(j).setCellValue((i+1)+","+(j+1));
row.get(i).getCell(i).setCellStyle(style);
}
}
FileOutputStream fileOut = new FileOutputStream("c:\\workbook.xls");
wb.write(fileOut);
fileOut.close();
}
:cry: Java ce l'ha con me xD
DanieleC88
27-07-2010, 19:11
Come fai a recuperare lo stile di una cella che crei dopo? :p
Ovvio che ti arriva l'eccezione. ;)
joeykiske
28-07-2010, 17:18
Come fai a recuperare lo stile di una cella che crei dopo? :p
Ovvio che ti arriva l'eccezione. ;)
sono un idiotaaa :D nannanarananààààà :fiufiu:
ieri sera avevo un dubbio di aver commesso un harderror..:Prrr:
Grazie mille! Vi devo una cena! :D
DanieleC88
28-07-2010, 17:20
Vi devo una cena! :D
Dicci luogo ed ora... :asd:
:Prrr:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.