XLS到PDF转换而不会丢失格式

时间:2014-01-20 07:00:57

标签: java excel pdf apache-poi

我有一个非常规要求的通用问题。

我必须将Excel文件转换为PDF,并且必须保留excel文件中每个单元格的所有格式都保留原样。不允许更改。就像单元格格式化为货币/会计一样,默认情况下,负值显示在圆括号中,例如(8.5),但从Java读取时,值为-8.5。对于数字单元格,值将为0,但显示为连字符( - )。 同样,对于其他格式类型,显示也会更改。

由于单元格具有不同的单元格类型,并且单元格中的实际值是根据单元格上应用的格式显示的,如何在输出PDF文件中复制它?

最新我了解到DataFormatter在我的案例中非常有用。所以我在下面写了代码

DataFormatter df = new DataFormatter();
Cell c = row.getCell(i);
CellStyle style = c.getCellStyle();
cellvalue = df.formatRawCellContents(row.getCell(i).getNumericCellValue(), style.getDataFormat(), style.getDataFormatString());

其中一个单元格具有格式 ($ *#,## 0.00 ); ($ *(#,## 0.00); ($ * “ - ”?? ); (@_)(0x2c)。如果单元格中的值为0,那么理想情况下它应显示“ - ”,但它仅显示为0.0。 / p>

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

首先在本地系统中安装pdf软件,然后在excel vb应用程序中运行此代码。给你想要的名字......就是这样...... Sub expf()     Application.ActivePrinter =“PDF完成PDFC”     ExecuteExcel4Macro“PRINT(1 ,,, 1 ,,,,,,,, 2,”“在PDFC上完成PDF”“,真,假)” 结束子

答案 1 :(得分:0)

使用POI jar我们可以阅读excel。读完每一行后,您可以使用PDFBox创建PDF文件。同样根据您的要求,应用pdf的样式。