Giter Club home page Giter Club logo

excel2pdf's Introduction

excel2pdf

An easy way to convert Excel to PDF by Java code based on Apache POI and itextpdf. 利用 JAVA 编写把 Excel 转 PDF 解决方案,依赖POI与IText库的实现。

单文件转换 / Single files convert

String pathOfXls = "D:\\pdfexport\\MAD 5-3-05-Octavia NF-20131025.xls";
String pathOfPdf = "D:\\pdfexport\\MAD 5-3-05-Octavia NF-20131025.pdf";

FileInputStream fis = new FileInputStream(pathOfXls);
List<ExcelObject> objects = new ArrayList<ExcelObject>();
objects.add(new ExcelObject("导航1",fis));
FileOutputStream fos = new FileOutputStream(pathOfPdf);
Excel2Pdf pdf = new Excel2Pdf(objects, fos);
pdf.convert();

多文件转换 / Multiple files convert

多文件转换之后会合并至某一个 PDF 中,并且支持导航栏标题方式。

FileInputStream fis1 = new FileInputStream(new File("D:\\pdfexport\\MAD 5-3-05-Octavia NF-20131025.xls"));
FileInputStream fis2 = new FileInputStream(new File("D:\\pdfexport\\MAD 6-1-47-Octavia NF-20131025.xls"));
FileInputStream fis3 = new FileInputStream(new File("D:\\pdfexport\\MAD 038-Superb FL DS-20131025.xls"));

FileOutputStream fos = new FileOutputStream(new File("D:\\test.pdf"));

List<ExcelObject> objects = new ArrayList<ExcelObject>();
objects.add(new ExcelObject("1.MAD 5-3-05-Octavia NF-20131025.xls",fis1));
objects.add(new ExcelObject("2.MAD 6-1-47-Octavia NF-20131025.xls",fis2));
objects.add(new ExcelObject("3.MAD 038-Superb FL DS-20131025.xls",fis3));

Excel2Pdf pdf = new Excel2Pdf(objects , fos);
pdf.convert();

代码打包

package -Prelease -Dmaven.test.skip=true

贡献与建议 / Contribution

希望拿了此份代码的人改进了一些问题或提交BUG的请提交PR到这个主干上,我会做合并操作希望把这个库进行更加的完善,谢谢! All Contributions are welcomed

后续功能计划(可能需要重构)

1、对单个 Excel 文件的 Sheet 进行 PDF 的页处理,并把 Sheet 名称当做锚;
2、支持多个 Excel 文件的 Sheet 合并,并在 PDF 页后面进行追加;
3、实现自动分辨 Excel 版式并对内容进行有效的缩放。

excel2pdf's People

Contributors

caryyu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

excel2pdf's Issues

转成的pdf 字体白色。所以PDF 文件看着是空白

POIUtil 这个class 里面 public static int getRGB(Color color){} 这个函数 我强行return 0 0 0 黑色result = new java.awt.Color(0, 0, 0).getRGB(); 这样导出来的PDF 的文件字体就有字了。我的excel 文件是 随便写的一个文件,不过我把它保存成了低版本 后缀是.xls 的文件。希望计算字体颜色这里能有个解决方法

导出的pdf中文不显示问题

Please answer some questions before submitting your issue. Thanks!

Expected behavior

Actual behavior

Steps to reproduce the behavior

Other information

不能合并行。

合并多行单元格,生成的pdf 文件中单元格错乱;每次多合并一行,就多添加一列单元格

表格内容空

其实是有内容的,只是字体设置有些问题。
//字体颜色,注释掉之前的,我直接设置为黑色字体
result.setColor(0,0,255);
/* int colorIndex = font.getColor();
if(font.getBoldweight() == org.apache.poi.ss.usermodel.Font.BOLDWEIGHT_BOLD){
result.setStyle(Font.BOLD);
}
HSSFColor color = HSSFColor.getIndexHash().get(colorIndex);
result.setColor(BaseColor.BLACK);
if(color != null){
int rbg = POIUtil.getRGB(color);
result.setColor(new BaseColor(rbg));
}*/

excel文件内有图片及图形的情况下报错

Exception in thread "main" java.io.IOException: The byte array is not a recognized imageformat.
at com.itextpdf.text.Image.getInstance(Image.java:474)
at com.itextpdf.text.Image.getInstance(Image.java:375)
at itextpdf.PdfTableExcel.addImageByPOICell(PdfTableExcel.java:208)
at itextpdf.PdfTableExcel.toParseContent(PdfTableExcel.java:115)
at itextpdf.PdfTableExcel.getTable(PdfTableExcel.java:54)
at itextpdf.Excel2Pdf.toCreatePdfTable(Excel2Pdf.java:126)
at itextpdf.Excel2Pdf.convert(Excel2Pdf.java:108)
at itextpdf.TestMain.main(TestMain.java:28)

针对合并单元格,单元格右边框的格式有问题,

针对合并单元格,单元格右边框的格式有问题,我在PdfTableExcel.java 第93行 添加如下代码

if (range != null) {
rowspan = range.getLastRow() - range.getFirstRow() + 1;
colspan = range.getLastColumn() - range.getFirstColumn() + 1; cell.getCellStyle().setBorderRight(row.getCell(range.getLastColumn()).getCellStyle().getBorderRight()); cell.getCellStyle().setRightBorderColor(row.getCell(range.getLastColumn()).getCellStyle().getRightBorderColor());
}

东西很好用,非常感谢哥们能共享出来。

表格的合并行不起作用

具体表现为:

我的 Excel 表格里有一行设置了合并,合并了 11 行,但输出的 PDF 却只有一行。

打断点调试,发现在设置到那一行的 pdfCell 的格式时,rowspan 和 colspan 都是正确的,个人认为应该是已经设置进去了的,但在输出的时候却没有生效。请问还需要在哪个位置设置一遍吗?

源表单:
image.png

输出的PDF:
image.png

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.