excel转pdf怎么转换,java实现导出excel

在有点须求个中我们须要抓取字段并且填充到excel表格里面,最终将excel表格转换到pdf格式进行输出,作者首先次接触那一个必要时,境遇多少个相比较费劲的难点,未来逐一列出并且提供化解方案。

经过几天的读书到底得以完成java中校查询结果存储为Excel,将页面另存word,将html页面存为pdf格式那多少个效用了,那是自家的第2篇博客,为了共享代码,也为了今后本人的就学收获不会弄丢,今后将那多少个效能贴在网上。 
① 、将查询结果存为excel,笔者的毕业设计是超级市场音讯保管类别,3个页面将商品消息体现出来了,以往将结果存为excel 
product.jsp页面 
<html> 
<title>this is my excel</title> 
<head> 
excel转pdf怎么转换,java实现导出excel。<script type=”text/javascript”> 
function genExcel(){ 
    window.open(“productManage/creatExcel.jsp”); 
   } 
   function genWord(){ 
    window.open(“productManage/creatWord.jsp”); 
   } 
   function genPdf(){ 
   window.open(“productManage/creatPdf.jsp”); 
   } 
</script> 
</head> 
<body> 
<form> 
<input type=”button” onclick=”genExcel()” value=”生成excel”> 
<input type=”button” onclick=”genWord()” value=”生成word”> 
        <input type=”button” onclick=”genPdf()”
value=”生成pdf”>  
</form> 
</body> 
</html> 
************************************************* 
//creatExcel.jsp 
<%@page import=”com.bean.Productbean”%> 
<%@ page language=”java” import=”java.util.*”
pageEncoding=”utf-8″%> 
<%@ page import=”com.dao.*” %> 
<% 
String path = request.getContextPath(); 
String basePath =
request.getScheme()+”://”+request.getServerName()+”:”+request.getServerPort()+path+”/”; 
%> 

  近日境遇贰个品种要求把word
转成pdf,百度了一下网上的方案有好多,比如虚拟打字与印刷、给word
装扩充插件等,这么些方案都依靠于ms word
程序,在java代码中也得使用诸如jacob或jcom那类java com
bridge,使得服务器开发受限于win平台,而且布置起来也很麻烦。后来在某论坛看到了3个openoffice+jodconverter的转移方案,能够完毕word到PDF的更换工作,服务器开发端需求设置openoffice,然而须要一步额外的操作–须求在服务器开发上的某部端口提供3个openoffice服务,这对安插起来显得麻烦了点,貌似也不太安全。
  偶然机会发现了PageOffice组件也得以完毕word转pdf功用。而且不光是回顾的把word转为pdf格式,还足以支撑动态填充数据到word模板文件然后再转为pdf文件。
  以下为官网介绍:

excel文件转换为PDF大家怎么进行操作呢?好四个人都不知底他的局地操作方法和技艺,前几天作者就总结和你们分享一下如何将excel文件转换为PDF文件格式!

1:excel转pdf出现乱码:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”> 
<html> 
  <head> 
    <base href=”<%=basePath%>”> 
    
    <title>My JSP ‘creatExcel.jsp’ starting page</title> 
    
<meta http-equiv=”pragma” content=”no-cache”> 
<meta http-equiv=”cache-control” content=”no-cache”> 
<meta http-equiv=”expires” content=”0″>    
<meta http-equiv=”keywords”
content=”keyword1,keyword2,keyword3″> 
<meta http-equiv=”description” content=”This is my page”> 
<!– 
<link rel=”stylesheet” type=”text/css” href=”styles.css”> 
–> 
<% 
    response.setHeader(“Content-Disposition”,
“attachment;filename=product.xls”); 
    response.setContentType(“application/vnd.ms-excel”); 
    CreatExcel ce = new CreatExcel(); 
    out.clear() ; 
    out = pageContext.pushBody(); 
    ce.getExcel(“product.xls”,response.getOutputStream()); 

  图片 1

图片 2

    第三遍excel转pdf是旗开马到的,第叁遍始发前边皆是乱码,是因为笔者的pdf转excel方法出现的题材,消除办法是选取java自个儿底层的办法(详见下方代码)。

    
%> 
  </head> 
  
  <body> 

  调用PageOffice组件的FileMaker对象实现动态填充数据到word模板并转为pdf的中坚代码如下:

工具/材料:

 public static boolean getLicense()
{
        boolean result = false;
        try {
            InputStream is =
Thread.currentThread().getContextClassLoader()
                  
 .getResourceAsStream(“license.xml”); // 
license.xml应放在..\WebRoot\WEB-INF\classes路径下
            License aposeLic = new
License();
           
aposeLic.setLicense(is);
            result = true;
        } catch (Exception e)
{               
            e.printStackTrace();
        }
        return result;
    }
    
    
    public static void
excelTransferPdf(String excelPath,String pdfPath) {
        if (!getLicense()) {
            System.out.println(“license
faile”);
            return;
        }
        
        try {     
            Workbook wb = new
Workbook(excelPath);
            FileOutputStream fileOS = new
FileOutputStream(new File(pdfPath));
            wb.save(fileOS,
com.aspose.cells.SaveFormat.PDF);
            fileOS.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

  </body> 
</html> 
************************************************* 
//CreatExcel.java 
package com.dao; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.util.ArrayList; 

    FileMakerCtrl fmCtrl = new FileMakerCtrl(request);
    fmCtrl.setServerPage(request.getContextPath()+"/poserver.zz");
    WordDocument doc = new WordDocument();
    doc.openDataRegion("PO_company").setValue("北京某某有限公司");//给数据区域赋值,即把数据填充到模板中相应的位置
    fmCtrl.setSaveFilePage("/savepdf"); //保存pdf的action或RequestMapping方法
    fmCtrl.setWriter(doc);
    fmCtrl.fillDocumentAsPDF("doc/template.doc", DocumentOpenType.Word, "123.pdf");//填充word模板并转为pdf

  保存pdf的action或RequestMapping方法(/savepdf)的代码:

    FileSaver fs = new FileSaver(request, response);
    fs.saveToFile(request.getSession().getServletContext().getRealPath("doc") +"/"+ fs.getFileName());
    fs.close();

PDF文件

2:excel转pdf出现折行。

import org.apache.poi.hssf.usermodel.HSSFCell; 
import org.apache.poi.hssf.usermodel.HSSFCellStyle; 
import org.apache.poi.hssf.usermodel.HSSFRow; 
import org.apache.poi.hssf.usermodel.HSSFSheet; 
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 

  示例源码及功能:
for
Java,解压后,拷贝Samples4文件夹到汤姆cat的Webapps目录下,访问: 

在线PDF转换器

  excel转pdf出现折行的情形尤其广泛,因为在程序运营进度中很多字段是抓取的,你不恐怕看清你的excel转成pdf会有几页,所以那么些时候你就毫无随便设置excel的预览格式,将excel的单元格式设置自动换行。

import com.bean.Productbean; 

PDF转换器

3:抓取字段显示结果不完全:。

public class CreatExcel { 
public void getExcel(String sheetname,OutputStream output){ 

步骤/方法