Java的Apache的POI Excel中保存为PDF [英] Java Apache POI Excel save as PDF
问题描述
我怎么能转换/保存 Excel中
文件复制到 PDF
?我使用的java游戏框架
来产生一些 Excel中
文件,现在要求修改 PDF
。我不想再code一切。
How can I convert/save excel
file to pdf
? I'm using java play framework
to generate some excel
files and now the requirement changes to pdf
. I don't want to recode everything.
有没有办法转换为 PDF
?
我生成的 Excel中
文件是从模板;我读的Excel模板文件,写入更改,然后保存为新的Excel文件。这样一来,该模板是不变的。它包含边框,图像和其他格式。
The excel
files I'm generating are from a template; I read the excel template file, write changes, and save as new excel file. That way, the template is unchanged. It contains border, image, and other formatting.
推荐答案
您将需要以下Java库和相关的JAR文件的程序协同工作。
POI V3.8
iText的v5.3.4
You would need the following Java libraries and associated JAR files for the program to work. POI v3.8 iText v5.3.4
试用此例为XLS转换为PDF
Try this Example to convert XLS to PDF
在完整的Java code,接受Excel的小号preadsheet数据作为输入和转换是一个PDF表格数据表示如下:
The complete Java code that accepts Excel spreadsheet data as an input and transforms that to a PDF table data is provided below:
import java.io.FileInputStream;
import java.io.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.ss.usermodel.*;
import java.util.Iterator;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.*;
public class excel2pdf {
public static void main(String[] args) throws Exception{
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
}
}
我希望这会帮助你。
i hope this will help you
这篇关于Java的Apache的POI Excel中保存为PDF的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!