用户登录
用户注册

分享至

代码生成复杂word文档

  • 作者: feng一样的双子
  • 来源: 51数据库
  • 2020-06-05

1.如何能让Java生成复杂Word文档

客户要求用程序生成标准的word文档,要能打印,而且不能变形,以前用过很多解决方案,都在客户严格要求下牺牲的无比惨烈。

POI读word文档还行,写文档实在不敢恭维,复杂的样式很难控制不提,想象一下一个20多页,嵌套很多表格和图像的word文档靠POI来写代码输出,对程序员来说比去山西挖煤还惨,况且文档格式还经常变化。iText操作Excel还行。

对于复杂的大量的word也是噩梦。直接通过JSP输出样式基本不达标,而且要打印出来就更是惨不忍睹。

Word从2003开始支持XML格式,用XML还做就很简单了。大致的思路是先用office2003或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板并输出Doc。

经测试这样方式生成的word文档完全符合office标准,样式、内容控制非常便利,打印也不会变形,生成的文档和office中编辑文档完全一样。看看实际效果首先用office【版本要2003以上,以下的不支持xml格式】编辑文档的样式,图中红线的部分就是我要输出的部分: 将编辑好的文档另存为XML。

2.如何能让Java生成复杂Word文档

客户要求用程序生成标准的word文档,要能打印,而且不能变形,以前用过很多解决方案,都在客户严格要求下牺牲的无比惨烈。

POI读word文档还行,写文档实在不敢恭维,复杂的样式很难控制不提,想象一下一个20多页,嵌套很多表格和图像的word文档靠POI来写代码输出,对程序员来说比去山西挖煤还惨,况且文档格式还经常变化。

iText操作Excel还行。对于复杂的大量的word也是噩梦。

直接通过JSP输出样式基本不达标,而且要打印出来就更是惨不忍睹。

Word从2003开始支持XML格式,用XML还做就很简单了。

大致的思路是先用office2003或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板并输出Doc。经测试这样方式生成的word文档完全符合office标准,样式、内容控制非常便利,打印也不会变形,生成的文档和office中编辑文档完全一样。

看看实际效果

首先用office【版本要2003以上,以下的不支持xml格式】编辑文档的样式,图中红线的部分就是我要输出的部分:

将编辑好的文档另存为XML

3.java 代码生成word文件

没定格式的话可以再jsp页面添加这段:

<%

response.reset();

response.setContentType("application/vnd.ms-excel;charset=utf-8");

java.util.Date date = new Date();

DateFormat df = new SimpleDateFormat("yyyyMMddhhmmss");

String Starttime = df.format(date).toString();

response.setHeader("Content-disposition", "attachment; filename=GroupingInformation_"+ Starttime + ".doc");

%>

如果要定好格式的话,只有自己去看poi比较复杂。(但是用习惯了就没大问题了。)

poi后台:

导出第三句是格式,这个自己去试试。

4.怎么制作word复杂模板

第1步,打开Word文档窗口,切换到“页面布局”功能区。在“页面设置”分组中,单击显示“页面设置”对话框按钮。

第2步,打开“页面设置”对话框,切换到“页边距”选项卡。在“页码范围”区域单击“多页”下拉三角按钮,并在打开的下拉菜单中选择“书籍折页”选项,如图所示。

第3步,切换到“纸张”选项卡,单击“纸张大小”下拉三角按钮,并在打开的下拉菜单中选择合适的纸张类型。由于使用“书籍折页”页面设置后,纸张方向只能选择“横向”,因此用户应当选择2倍于书籍幅面的纸张类型。例如,如果书籍是A4幅面,则应该选择A3纸张;如果书籍是B5负面,则应该选择B4幅面。完成纸张大小的设置后单击“确定”按钮,如图所示。

第4步,返回Word2007文档窗口,单击office按钮。在Office菜单中指向“打印”选项,并在打开的下一级菜单中单击“打印”命令。

第5步,打开“打印”对话框,选中“手动双面打印”复选框以便更好地控制纸张的正、反面放置。然后单击“确定”按钮开始打印。完成第一张的打印后,需要将该纸张反面放入打印机以打印反面(可能需要多次尝试才能确定的放置方向),如图所示。

5.一个java web项目,项目中,要生成复杂的word文档,我采用word文

你换一种方式去找摸吧路径;

private Configuration configuration= null;

Template t = null;

// 你在模板.ftl的包中再建一个java类,这个java类中什么都不写,比如就叫model.java

//然后用下面的这个方法去找摸吧路径

templateLoader=new ClassTemplateLoader(model.class);

configuration.setTemplateLoader(templateLoader);

t = configuration.getTemplate(path);

t.setEncoding("utf-8");

这样一定可以拿到,不行的话,在问我

6.HTML怎么导出生成word文档

1、保存网页

在浏览器中访问目标网页,执行菜单“文件”→“另存为”,文件类型选择“网页,全部”。

2、用WPS文字打开html文件

执行“文件”→“打开”,文件类型选择“网页文件”或“所有文件”,以打开刚才下载得到的《[征稿八]怎样用WPS制作PDF》html文件。

3、去掉不需要的部分

注:表格形式出现的正文,可以选中后执行“表格”→“转换”→“表格转换为文本”去除表格外框。

4、最后另存为WPS文档或WORD文档即可。

7.怎样制作复杂的Word表格

以word2007为例:zhidao在word插入页面,点表格下拉菜单,可以酌情生成不同行列的word表格。

在生成的word表格中,选中相邻单元格,右击鼠标,在弹出菜单里有合并单元格,或者直接切换到布局页面的合并菜单,用户能以此将部分单元格合并为一个大版的单元格。反之,亦能将一个单元格拆分成两个以上的小单元格。

在布局页面,用户还能绘制斜线表头等。通过这些操作,基本能满足制作样式比较复杂的word表格权。

但是,word表格的计算功能弱,定义公式不方便。因此,如果表内需要大量数据运算,请使用Excel制作表格。

8.怎么用程序生成word文档

用程序生成word文档的解决办法

首先打开word程序,然后点击左上角的按钮选择新建。

在新建文档中选择已安装的word模板,然后根据需要选择相应的模板,这里小编选择word简历模板,最后点击创建。

此时一个word简历模板就快速的创建好了,我们可以直接在上面修改制作成自己的word简历。

小编随意在word模板上修改一下,大家看一下效果。

如果感觉已安装的word模板没有合适的,我们可以在Microsoft Office Online中挑选,里面与很多现成的word模板。

我们插入一个word模板,小编选择了一个word简历模板,只要把个人信息填写到里面就可以了,这种方法快速高效,可以大大的节省工作时间。

小刚SEO为你解答

转载请注明出处51数据库 » 代码生成复杂word文档

软件
前端设计
程序设计
Java相关