使用Java将具体的Excel表格转换为PDF

时间:2017-05-11 13:41:45

标签: java excel pdf

我需要从Excel文档中提取74个表格,并将它们全部转换为74个PDF。此外,如果名称与我的数据库的具体字段匹配,我需要与SQL数据库进行比较,但这不应该是一个问题......有人知道我可以用来做这个库吗?我一直在寻找,但我找不到解决方案,希望你们能帮助我!感谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此代码

public static void main(String[] args) throws Exception{
        //First we read the Excel file in binary format into FileInputStream
        FileInputStream input_document = new FileInputStream(new File("C:\\excel_to_pdf.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
        Document iText_xls_2_pdf = new Document();
        PdfWriter.getInstance(iText_xls_2_pdf, new FileOutputStream("Excel2PDF_Output.pdf"));
        iText_xls_2_pdf.open();
        //we have two columns in the Excel sheet, so we create a PDF table with two columns
        //Note: There are ways to make this dynamic in nature, if you want to.
        PdfPTable my_table = new PdfPTable(2);
        //We will use the object below to dynamically add new data to the table
        PdfPCell table_cell;
        //Loop through rows.
        while(rowIterator.hasNext()) {
                Row row = rowIterator.next(); 
                Iterator<Cell> cellIterator = row.cellIterator();
                        while(cellIterator.hasNext()) {
                                Cell cell = cellIterator.next(); //Fetch CELL
                                switch(cell.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(cell.getStringCellValue()));
                                         //feel free to 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