convertir un fichier excel au format pdf à l'aide de java, itext et PI API et de conserver les paramètres
J'ai un fichier Excel qui a 5 colonnes ayant quelques cellules fusionnées, les cellules vides, les dates et autres informations texte (fichier excel).
Je suis à la lecture de ce fichier à l'aide de POI API en java. Je suis capable de convertir le fichier en format pdf table à l'aide de la bibliothèque iText jar.
Mais, tout le format n'est pas copié dans le fichier pdf. (par exemple, la fusion des cellules dans une colonne, et mise en forme ou les paramètres sont tous partis).
Un simple tableau pdf est créé.
Comment puis-je conserver le même format que dans excel? (Je veux la copie exacte de la feuille excel en pdf)
Voici le code que j'utilise
//First we read the Excel file in binary format into FileInputStream
FileInputStream input_document = new FileInputStream(new File("K:\\DCIN_TER\\DCIN_EPU2\\CIRCUIT FROM BRANCH\\RAINBOW ORDERS\\" + SONo.trim() + "\\" + SONo.trim() + " - Checklist.xls"));
//Read workbook into HSSFWorkbook
HSSFWorkbook my_xls_workbook = new HSSFWorkbook(input_document);
//Read worksheet into HSSFSheet
HSSFSheet my_worksheet = my_xls_workbook.getSheetAt(0);
//To iterate over the rows
Iterator<Row> rowIterator = my_worksheet.iterator();
//We will create output PDF document objects at this point
com.itextpdf.text.Document iText_xls_2_pdf = new com.itextpdf.text.Document();
PdfWriter.getInstance(iText_xls_2_pdf, new FileOutputStream("K:\\DCIN_TER\\DCIN_EPU2\\CIRCUIT FROM BRANCH\\RAINBOW ORDERS\\" + SONo.trim() + "\\" + SONo.trim() + " - Checklist.pdf"));
iText_xls_2_pdf.open();
//we have 5 columns in the Excel sheet, so we create a PDF table with 5 columns; Note: There are ways to make this dynamic in nature, if you want to.
PdfPTable my_table = new PdfPTable(5);
//We will use the object below to dynamically add new data to the table
PdfPCell table_cell;
//Loop through rows.
while(rowIterator.hasNext())
{
Row rowi = rowIterator.next();
Iterator<Cell> cellIterator = rowi.cellIterator();
while(cellIterator.hasNext())
{
Cell celli = cellIterator.next(); //Fetch CELL
switch(celli.getCellType())
{
//Identify CELL type you need to add more code here based on your requirement /transformations
case Cell.CELL_TYPE_STRING:
//Push the data from Excel to PDF Cell
table_cell = new PdfPCell(new Phrase(celli.getStringCellValue()));
//move the code below to suit to your needs
my_table.addCell(table_cell);
break;
case Cell.CELL_TYPE_NUMERIC:
//Push the data from Excel to PDF Cell
table_cell = new PdfPCell(new Phrase("" + celli.getNumericCellValue()));
//move the code below to suit to your needs
my_table.addCell(table_cell);
break;
}
//next line
}
}
//Finally add the table to PDF document
iText_xls_2_pdf.add(my_table);
iText_xls_2_pdf.close();
//we created our pdf file..
input_document.close(); //close xls
J'ai joint le fichier excel comme une image
salut Sumeet, la conversion est aussi un fichier qui sera enregistré dans un dossier local vous avez mis en place? pouvez-vous tout simplement de convertir et d'obtenir le flux?
confrontée au même problème, le pdf généré est laid avec des tables sans frontière et ne rentre pas dans le fichier pdf de la fenêtre d'affichage.
OriginalL'auteur user1416631 | 2014-04-04
Vous devez vous connecter pour publier un commentaire.
Avez-vous utilisé
ExcelToHtmlConverter
? C'est dans 3.13 version de Apache POI. Il a le même usage queWordToHtmlConverter
. Après la conversion Excel au format HTML, vous pouvez utiliser la bibliothèque iText pour convertir HTML en PDF. C'est un PDF que j'ai obtenu à l'aide de ces outils:OriginalL'auteur Chen
Avec Apache Tika, vous pouvez convertir fichier xlsx au format html et via apache pdfbox vous pouvez convertir du texte au format html au format pdf.
?? merci de me guider
Tout d'abord, vous devez obtenir apache tika lib. Si vous utilisez Maven, vous pouvez l'utiliser: <dépendance> <groupId > org.apache.tika</groupId> <artifactId>tika-analyseurs</artifactId> <version>1.5< version> </dépendance> Et que, vous pouvez vérifier les codes sources sur le stackoverflow pour la conversion de fichier xls en html. Vous pouvez utiliser AutoDetectParser pour l'analyse, mais je ne me souviens pas de contrôle liés à la manipulation de nom. S'il vous plaît vérifier sur le stackoverflow. Après cela, utilisez pdfbox pour la conversion html vers pdf. C'est très simple. Veuillez croire en la recherche 🙂
hey, désolé, merci pour la réponse. va essayer n soit u sais de teh résultats
Apache tika bandes de toutes les mises en forme et les styles de la feuille excel.
OriginalL'auteur