gpt4 book ai didi

java - java中Excel到PDF的转换

转载 作者:行者123 更新时间:2023-11-30 02:06:09 24 4
gpt4 key购买 nike

伙计们,我正在尝试用 java 打印报告页面。这里我有一个打印格式的excel文件,我必须将数据填充到excel中,然后将其转换为pdf以供显示。

Excel 数据已成功编辑并保存到新文件中。但是当我尝试将编辑后的文件转换为 PDF 时,它丢失了其格式,并且列跨度和对齐方式不受影响。

这是我的代码:

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"));
HSSFWorkbook my_xls_workbook = new HSSFWorkbook(input_document);
HSSFSheet my_worksheet = my_xls_workbook.getSheetAt(0);
Iterator<Row> rowIterator = my_worksheet.iterator();
Document iText_xls_2_pdf = new Document();
PdfWriter.getInstance(iText_xls_2_pdf, new
FileOutputStream("Excel2PDF_Output.pdf"));
iText_xls_2_pdf.open();
PdfPTable my_table = new PdfPTable(2);
PdfPCell table_cell;
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
case Cell.CELL_TYPE_STRING:
table_cell=new PdfPCell(new Phrase(cell.getStringCellValue()));
my_table.addCell(table_cell);
break;
}
}
}
iText_xls_2_pdf.add(my_table);
iText_xls_2_pdf.close();
input_document.close();
}
}

最佳答案

如果你想保留表格样式,我认为你应该在单元格中设置与样式相关的内容,例如 colspan、边框、对齐方式等。

这里是一个为单元格设置一些样式属性的示例代码,例如如果你想要没有边框,你应该将边框设置为 NO_BORDER,我不知道你的表格是什么样的,所以你应该自己设置样式属性。

您还可以查看iText5 tables and fonts example pageiText7 tables and fonts example page获取更多信息。

PdfPTable table = new PdfPTable(10);
PdfPCell cell = new PdfPCell(docTitle);
cell.setColspan(3);
cell.setBorder(PdfPCell.NO_BORDER);
cell.setHorizontalAlignment(Element.ALIGN_LEFT);
table.addCell(cell);

关于java - java中Excel到PDF的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51297612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com