各位高手帮忙:现在要做一个项目,有要求生成的excel 转换为PDF我现在不知道有那些开源包可以做,jxcell可以,但收费的,老板想找个免费的开源包小弟在次先谢谢各位大侠了~

解决方案 »

  1.   

    Excel 文件转换为 PDF 文件的代码
    所需的 jar:itext2.0.4,jexcelapi 2.6.4,iTextAsian.jar, iTextAsianCmaps.jar
    说明:
    (1)不支持图表
    (2)Excel文件中的图片只是简单的加入PDF文件,不做其他处理。因为PDF的 table 使用了百分比的宽度,如果要让PDF的图片的位置与 Excel 中的保持一致,要计算坐标。(3)支持设置页头、页脚、显示页码。(4)第一次运行时,装载字体需要 1-3秒的时间。示例:java 代码
    1.String source = "e:\\test2.xls";   
    2.String dest = "e:\\b.pdf";   
    3.Excel xls = new Excel(source);   
    4.xls.setReportHeaderStartRow(0); // Report header 开始行:第一行   
    5.xls.setReportHeaderEndRow(1);   // Report header 结束行:第二行   
    6.xls.setShowPageNumber(true);    // 设置显示页码   
    7.xls.setPageSize(PageSize.A4.rotate()); // 设置页大小   
    8.// 可以自定义显示页码风格   
    1.//xls.setPageNumberStyle("第 " + FooterText.SIGN_PAGE_NUMBER + " 页,共 " + FooterText.SIGN_TOTAL_NUMBER + " 页");   
    1.xls.setPageNumberStyle(FooterText.STYLE_PAGE_NUMBER_N_OFTOTAL_CH);   
    2.//xls.setPageNumberStyle("- " + FooterText.SIGN_PAGE_NUMBER + " / " + FooterText.SIGN_TOTAL_NUMBER + " -");   
    1.//xls.setPageNumberFontSize(20);   
    1.xls.setPageHeader(0, 2, 2); // 设置页头,第 1 个 sheet,第三行   
    2.xls.setPageHeader(1, 0, 1); // 设置页头,第 2 个 sheet,第 1-2 行   
    3.       
    4.xls.setPageNumberAlign(FooterText.ALIGN_CENTER);   
    5.FooterText text = new FooterText("(C)Some Corporation 2007 (GZ)");   
    6.text.setAlign(FooterText.ALIGN_LEFT);   
    7.text.setBold(true);   
    8.//text.setFontSize(20);   
    1.xls.addPageFooter(text);   
    2.       
    3.text = new FooterText("July 23, 2007");   
    4.text.setAlign(FooterText.ALIGN_RIGHT);   
    5.text.setBold(false);   
    6.//text.setFontSize(20);   
    1.xls.addPageFooter(text);   
    2.       
    3.Excel2PdfTransformer transformer = new Excel2PdfTransformer(xls);   
    4.transformer.write(dest); 
      

  2.   

    知道poi,楼上的方法还真没见过,记录下。