java用poi导出word文档,我要导出一个表格,表格的单元格中还要有...
有个最简单,不用使用任何 poi 或其他第三方类库的方法生成 excel ,或 word ,你把一个生成好的 word 例子用文件另存为 xml , docx 之类,然后你再直接用记事本去打开这个 docx ,你就会发现是 xml 格式,这个时候,你在程序里面就直接用普通代码生成这个 xml 就可以了。
poi-Java导出word时,能实现在word正文内“插入附件”的效果吗
首先我用的技术是 poi 这是代码,一个工具类得调用 public class WordUtil { /** * 基于模板文件导出 word 文档,此方法主要是用来处理文档中需要替换的文本内容,对图片和表格无效 * * @param templatePath * 模板文件的路径,要求路径中要包含全名,并且模板文件只能是 07 及以上格式,即 docx 的文件 * @param destFilePath * 导出文件的存放路径,包含文件名,例如,E:/test/小区公告.docx * @param data * 用来替换文档中预定义的字符串,要求预定义的字符串与 data 中的 key 值要相同 */ public static void exportWordByTemplate(String templatePath, String destFilePath, Map data) { FileOutputStream out = null; XWPFDocument doc = null; try { doc = new XWPFDocument(POIXMLDocument.openPackage(templatePath)); List listRun; List listParagraphs = doc.getParagraphs(); for (int i = 0; i listRun = listParagraphs.get(i).getRuns(); for (int j = 0; j if (data.get(listRun.get(j).getText(0)) != null) { String val = data.get(listRun.get(j).getText(0)); listRun.get(j).setText(val, 0); } } } File destFile = new File(destFilePath); if (!destFile.getParentFile().exists()) { destFile.getParentFile().mkdirs(); } out = new FileOutputStream(destFilePath); doc.write(out); } catch (IOException e) { e.printStackTrace(); } finally { try { if (out != null) out.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * 基于模板文件导出 word 文档,该方法支持03格式,但是此方法只能保留文档内容,不能保留文档中的样式和图片,建议将模板使用 07 的格式保存 * * @param templatePath * 模板文件的路径 * @param destFilePath * 导出文件的存放路径,包含文件名,例如,E:/test/小区公告.doc * @param data * 用来替换文档中预定义的字符串,要求预定义的字符串与 data 中的 key 值要相同 */ public static void export03WordByTemplate(String templatePath, String destFilePath, Map data) { try { WordExtractor doc = new WordExtractor(new FileInputStream( templatePath)); String content = doc.getText(); for (String key : data.keySet()) { content = content.replaceAll(key, data.get(key)); } byte b[] = content.getBytes(); ByteArrayInputStream bais = new ByteArrayInputStream(b); POIFSFileSystem fs = new POIFSFileSystem(); DirectoryEntry directory = fs.getRoot(); directory.createDocument("WordDocument", bais); FileOutputStream ostream = new FileOutputStream(destFilePath); fs.writeFilesystem(ostream); bais.close(); ostream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { Map maps = new HashMap(); maps.put("appellation", "万达公寓业主:"); maps.put( "main_body", "输出的内容"); maps.put("date", "2013年1月23日"); exportWordByTemplate("E:/sss 2.docx", "E:/test/test.doc", maps); } }"E:/sss 2.docx 模板存放的地址。
E:/test/test.doc 新生成的地址。
python输出word内容
text = ',本地文件,文本内容到PDF的转换,其最终还是调用wkhtmltopdf命令.add_table(rows=1,cols=1,以及使用freemarker这样的模板引擎这样的方式。
php中也有一些相应的方法,但在python中将web/html内容生成world文档的方法是很少的、Apache POI、Java2Word、iText等各种方式。
使用方法:1.获取网页中的数据, level=1)document,支持URL;, 0)p = document.add_paragraph(')from docx import Documentfrom docx!w = float(row) /first item in ordered list';ListNumber')document.add_picture('程序导出word文档的方法将web/html内容导出为world文档,style = 'Table Grid'.add_heading('Document Title' and some ')p。
是目前接触到的python生成pdf效果较好的, style=', width=Inches(1.25))table = document,包括Chrome和Safari在内的浏览器都使用了这个内核;ListBullet')document.add_paragraph(',是无法将这些图片转换到word文档中;3.生成的word文档内容格式不容易控制。
优点:1.wkhtmltopdf:利用webkit内核将HTML转为PDFwebkit是一个高效、开源的浏览器内核; 2.0t,比如使用Jacob。
转换效果也不错.odtunoconv -f html *.odt缺点:1.只能对静态html进行转换,对于页面中有使用ajax异步获取数据的地方也不能转换(主要是要保证从web页面保存下来的html文件中有数据)。
2.只能对html进行转换,如果页面中有使用echarts,highcharts等js代码生成的图片.pdfkit功能:1.wkhtmltopdf主要用于HTML生成PDF.id)row_cells[2];test.html'.text = item;, 'out.pdf')pdfkit.from_file('Desc'for item in recordset:row_cells = table.add_row().cellsrow_cells[0].text = str(item.qty)row_cells[1]。
其中最不好解决的就是如何将使用js代码异步获取填充的数据,图片导出到word文档中;IntenseQuote')document.add_paragraph('Id'hdr_cells[2];first item in unordered list'。
1.docx')缺点:1.功能非常弱。
有很多限制比如不支持模板等,只能生成简单格式的word文档。
程序导出PDF文档方法1,使用python手动排版添加到word文档中。
from docx import Documentfrom docx.columns[0].width = Inches(w)document.save('table-step.text = str(item;monty-truth;)t.autofit = False #很重要.save('.png', level 1'.descdocument.add_page_break()document. unoconv功能:1.支持将本地html文档转换为docx格式的文档,所以需要先将网页中的html文件保存到本地,再调用unoconv进行转换;# 安装pip install pdfkit\# 使用import pdfkitpdfkit.from_url(''demo.docx',使用方法非常简单。
\.add_run('bold'A plain paragraph having some ')p.bold = Truep.add_run('),且使用非常简单。
使用方法:\, style=', style='# 安装sudo apt-get install unoconv\# 使用unoconv -f pdf *.').italic = Truedocument.add_heading(', 'out.pdf')pdfkit.from_string('Hello!', 'out.pdf')缺点:1.对使用echarts,highcharts这样的js代码生成的图标无法转换为pdf(因为它的功能主要是将html转换为pdf,而不是将js转换为pdf)。
对于纯静态页面的转换效果还是不错的。
2.其他其他生成pdf的插件还有:weasyprint,reportlab,PyPDF2等,经简单试验都不如pdfkit效果好,且有些用法复杂。
.odtunoconv -f doc *;Heading.text = '.shared import Inchesdocument = Document()for row in range(9):t = document.pdfkit是基于wkhtmltopdf的python封装。
2. python-docx功能:1.python-docx是一个可以读写word文档的python库,其中有一个选项就是直接“保存为 PDF”。
2.wkhtmltopdf使用webkit内核的PDF渲染引擎来将HTML页面转换为PDF。
高保真,转换质量很好。
2.shared import Inchesdocument = Document()document.add_run('italic。
Chrome打印当前网页的功能.add_paragraph('Intense quote'.add_table(rows=1, cols=3)hdr_cells = table.rows[0].cellshdr_cells[0].text = 'Qty'hdr_cells[1],再java中有很多解决方案
python输出word内容
程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob、Apache POI、Java2Word、iText等各种方式,以及使用freemarker这样的模板引擎这样的方式。
php中也有一些相应的方法,但在python中将web/html内容生成world文档的方法是很少的。
其中最不好解决的就是如何将使用js代码异步获取填充的数据,图片导出到word文档中。
1. unoconv 功能:1.支持将本地html文档转换为docx格式的文档,所以需要先将网页中的html文件保存到本地,再调用unoconv进行转换。
转换效果也不错,使用方法非常简单。
\# 安装 sudo apt-get install unoconv \# 使用 unoconv -f pdf *.odt unoconv -f doc *.odt unoconv -f html *.odt 缺点:1.只能对静态html进行转换,对于页面中有使用ajax异步获取数据的地方也不能转换(主要是要保证从web页面保存下来的html文件中有数据)。
2.只能对html进行转换,如果页面中有使用echarts,highcharts等js代码生成的图片,是无法将这些图片转换到word文档中;3.生成的word文档内容格式不容易控制。
2. python-docx 功能:1.python-docx是一个可以读写word文档的python库。
使用方法:1.获取网页中的数据,使用python手动排版添加到word文档中。
from docx import Document from docx.shared import Inches document = Document() document.add_heading('Document Title', 0) p = document.add_paragraph('A plain paragraph having some ') p.add_run('bold').bold = True p.add_run(' and some ') p.add_run('italic.').italic = True document.add_heading('Heading, level 1', level=1) document.add_paragraph('Intense quote', style='IntenseQuote') document.add_paragraph('first item in unordered list', style='ListBullet') document.add_paragraph('first item in ordered list', style='ListNumber') document.add_picture('monty-truth.png', width=Inches(1.25)) table = document.add_table(rows=1, cols=3) hdr_cells = table.rows[0].cells hdr_cells[0].text = 'Qty' hdr_cells[1].text = 'Id' hdr_cells[2].text = 'Desc' for item in recordset:row_cells = table.add_row().cells row_cells[0].text = str(item.qty) row_cells[1].text = str(item.id) row_cells[2].text = item.desc document.add_page_break() document.save('demo.docx') from docx import Document from docx.shared import Inches document = Document() for row in range(9):t = document.add_table(rows=1,cols=1,style = 'Table Grid') t.autofit = False #很重要!w = float(row) / 2.0 t.columns[0].width = Inches(w) document.save('table-step.docx') 缺点:1.功能非常弱。
有很多限制比如不支持模板等,只能生成简单格式的word文档。
程序导出PDF文档方法1.pdfkit 功能:1.wkhtmltopdf主要用于HTML生成PDF。
2.pdfkit是基于wkhtmltopdf的python封装,支持URL,本地文件,文本内容到PDF的转换,其最终还是调用wkhtmltopdf命令。
是目前接触到的python生成pdf效果较好的。
优点:1.wkhtmltopdf:利用webkit内核将HTML转为PDF webkit是一个高效、开源的浏览器内核,包括Chrome和Safari在内的浏览器都使用了这个内核。
Chrome打印当前网页的功能,其中有一个选项就是直接“保存为 PDF”。
2.wkhtmltopdf使用webkit内核的PDF渲染引擎来将HTML页面转换为PDF。
高保真,转换质量很好,且使用非常简单。
使用方法:\# 安装 pip install pdfkit \# 使用 import pdfkit pdfkit.from_url('', 'out.pdf') pdfkit.from_file('test.html', 'out.pdf') pdfkit.from_string('Hello!', 'out.pdf') 缺点:1.对使用echarts,highcharts这样的js代码生成的图标无法转换为pdf(因为它的功能主要是将html转换为pdf,而不是将js转换为pdf)。
对于纯静态页面的转换效果还是不错的。
2.其他 其他生成pdf的插件还有:weasyprint,reportlab,PyPDF2等,经简单试验都不如pdfkit效果好,且有些用法复杂。
怎么把python输出为word
程序导出word文档的方法将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob、Apache POI、Java2Word、iText等各种方式,以及使用freemarker这样的模板引擎这样的方式。
php中也有一些相应的方法,但在python中将web/html内容生成world文档的方法是很少的。
其中最不好解决的就是如何将使用js代码异步获取填充的数据,图片导出到word文档中。
1. unoconv功能:1.支持将本地html文档转换为docx格式的文档,所以需要先将网页中的html文件保存到本地,再调用unoconv进行转换。
转换效果也不错,使用方法非常简单。
?\# 安装sudo apt-get install unoconv\# 使用unoconv -f pdf *.odtunoconv -f doc *.odtunoconv -f html *.odt缺点:1.只能对静态html进行转换,对于页面中有使用ajax异步获取数据的地方也不能转换(主要是要保证从web页面保存下来的html文件中有数据)。
2.只能对html进行转换,如果页面中有使用echarts,highcharts等js代码生成的图片,是无法将这些图片转换到word文档中;3.生成的word文档内容格式不容易控制。
2. python-docx功能:1.python-docx是一个可以读写word文档的python库。
使用方法:1.获取网页中的数据,使用python手动排版添加到word文档中。
...
cmw500和iqxel
EasyPoi的主要特点1.设计精巧,使用简单2.接口丰富,扩展简单3.默认值多,write less do more4.AbstractView 支持,web导出可以简单明了 EasyPoi的几个入口工具类1.ExcelExportUtil Excel导出(普通导出,模板导出)2.ExcelImportUtil Excel导入3.WordExportUtil Word导出(只支持docx ,doc版本poi存在图片的bug,暂不支持) 版本修改2.0.6-SNAPSHOT 增加map的导出 增加index 列 EasyPoi导出实例1.注解,导入导出都是基于注解的,实体上做上注解,标示导出对象,同时可以做一些操作 @ExcelTarget("courseEntity") public class CourseEntity implements java.io.Serializable { /** 主键 */ private String id; /** 课程名称 */ @Excel(name = "课程名称", orderNum = "1", needMerge = true) private String name; /** 老师主键 */ @ExcelEntity(id = "yuwen") @ExcelVerify() private TeacherEntity teacher; /** 老师主键 */ @ExcelEntity(id = "shuxue") private TeacherEntity shuxueteacher; @ExcelCollection(name = "选课学生", orderNum = "4") private List students;2.基础导出 传入导出参数,导出对象,以及对象列表即可完成导出 HSSFWorkbook workbook = ExcelExportUtil.exportExcel(new ExportParams( "2412312", "测试", "测试"), CourseEntity.class, list);3.基础导出,带有索引 在到处参数设置一个值,就可以在导出列增加索引 ExportParams params = new ExportParams("2412312", "测试", "测试"); params.setAddIndex(true); HSSFWorkbook workbook = ExcelExportUtil.exportExcel(params, TeacherEntity.class, telist);4.导出Map 创建类似注解的集合,即可完成Map的导出,略有麻烦 List entity = new ArrayList(); entity.add(new ExcelExportEntity("姓名", "name")); entity.add(new ExcelExportEntity("性别", "sex")); List> list = new ArrayList>(); Map map; for (int i = 0; i map = new HashMap(); map.put("name", "1" + i); map.put("sex", "2" + i); list.add(map); } HSSFWorkbook workbook = ExcelExportUtil.exportExcel(new ExportParams( "测试", "测试"), entity, list);5.模板导出 根据模板配置,完成对应导出 TemplateExportParams params = new TemplateExportParams(); params.setHeadingRows(2); params.setHeadingStartRow(2); Map map = new HashMap(); map.put("year", "2013"); map.put("sunCourses", list.size()); Map obj = new HashMap(); map.put("obj", obj); obj.put("name", list.size()); params.setTemplateUrl("org/jeecgframework/poi/excel/doc/exportTemp.xls"); Workbook book = ExcelExportUtil.exportExcel(params, CourseEntity.class, list, map);6.导入 设置导入参数,传入文件或者流,即可获得相应的list ImportParams params = new ImportParams(); params.setTitleRows(2); params.setHeadRows(2); //params.setSheetNum(9); params.setNeedSave(true); long start = new Date().getTime(); List list = ExcelImportUtil.importExcel(new File( "d:/tt.xls"), CourseEntity.class, params);7.和spring mvc的无缝融合 简单几句话,Excel导出搞定 @RequestMapping(params = "exportXls") public String exportXls(CourseEntity course,HttpServletRequest request,HttpServletResponse response , DataGrid dataGrid,ModelMap map) { CriteriaQuery cq = new CriteriaQuery(CourseEntity.class, dataGrid); org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, course, request.getParameterMap()); List courses = this.courseService.getListByCriteriaQuery(cq,false); map.put(NormalExcelConstants.FILE_NAME,"用户信息"); map.put(NormalExcelConstants.CLASS,CourseEntity.class); map.put(NormalExcelConstants.PARAMS,new ExportParams("课程列表", "导出人:Jeecg", "导出信息")); map.put(NormalExcelConstants.DATA_LIST,courses); return NormalExcelConstants.JEECG_EXCEL_VIEW; }
问卷网导出Word文档打不开,咋办???
public String exportxm() throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); // String wid=request.getParameter("wid"); String[] headers = { "项目名称", "填报人", "填报时间", "合同额", "预计毛利", "项目计划完成时间", "所属部门"}; String[] columns = { "sernum", "personer.name", "times","xsjobes", "xsb", "plannedate", "subdept.name"}; Map values = new HashMap(); //Page page1 = new Page(40); // 设置默认排序方式 if (!page.isOrderBySetted()) { page.setOrderBy("id"); page.setOrder(Page.DESC); } page.setPageSize(9999); page = manager.searchWork(page, values); String title="项目管理表"; // 生成Excel文件. Workbook wb = new ExcelExport(title, headers,columns, page) .exportExcelWorkbook(); // 输出Excel文件. HttpServletResponse response = Struts2Utils.getResponse(); response.setContentType(ServletUtils.EXCEL_TYPE); ServletUtils.setFileDownloadHeader(response, "项目管理-"+accountManager.getcurrentUser().getName()+".xls"); wb.write(response.getOutputStream()); response.getOutputStream().flush(); return null; } 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 /** * 设置让浏览器弹出下载对话框的Header. * * @param fileName 下载后的文件名. */ public static void setFileDownloadHeader(HttpServletResponse response, String fileName) { try { //中文文件名支持 String encodedfileName = new String(fileName.getBytes(), "ISO8859-1"); response.setHeader("Content-Disposition", "attachment; filename=\"" + encodedfileName + "\""); } catch (UnsupportedEncodingException e) { } } public static final String EXCEL_TYPE = "application/vnd.ms-excel";、、、、、、、、、、、、、、、/** * 导出到excel * @param title 标题 * @param headers 表格头 * @param result 数据 */ @SuppressWarnings({ "rawtypes", "unchecked" }) public ExcelExport(String title,String[] headers,String[]columns, Page page){ this.title=title; this.headers=headers; this.result=transhashmap(columns, page.getResult()); } /** * 将listObject 转换为List> * @param columns * @param olist * @return */ private List> transhashmap(String[] columns,List olist){ List> result=Lists.newArrayList(); for(Object o:olist){ HashMap ht=this.transhashmap(columns, o); result.add(ht); } return result; } /** * 将object 转换为hashmap * @param columns * @param olist * @return */ private HashMap transhashmap(String[] columns,Object o){ int col=0; HashMap ht=new HashMap(); for(String column:columns){ //根据属性名称直接获取值 Object value=this.invokeGetterMethod(o, column); ht.put(col,value); col=col+1; } return ht; }
java poi导出word 可以设置格式吗
1. 读取word 2003及word 2007需要的jar包2. 读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi-3.5-beta6-.jar 和 poi-scratchpad-3.5-beta6-.jar 两个 jar 包即可, 而 2007 版本(.docx)就麻烦多,我说的这个麻烦不是我们写代码的时候麻烦,是要导入的 jar 包比较的多,有如下 7 个之多:3. 1. openxml4j-bin-beta.jar4. 2. poi-3.5-beta6-.jar5. 3. poi-ooxml-3.5-beta6-.jar6. 4 .dom4j-1.6.1.jar7. 5. geronimo-stax-api_1.0_spec-1.0.jar8. 6. ooxml-schemas-1.0.jar9. 7. xmlbeans-2.3.0.jar10. 其中 4-7 是 poi-ooxml-3.5-beta6-.jar 所依赖的 jar 包(在 poi-bin-3.5-beta6-.tar.gz 中的 ooxml-lib 目录下可以找到)。
11. 2.换行符号12. 硬换行:文件中换行,如果是键盘中使用了"enter"的换行。
13. 软换行:文件中一行的字符数容量有限,当字符数量超过一定值时,会自动切到下行显示。
14. 对程序来说,硬换行才是可以识别的、确定的换行,软换行与字体大小、缩进有关。
15. 3.读取的注意事项16. 值得注意的是: POI 在读取不会读取 word 文件中的图片信息; 还有就是对于 2007 版的 word(.docx), 如果 word 文件中有表格,所有表格中的数据都会在读取出来的字符串的最后。
17. 4.读取word文本内容代码1 import java.io.File;2 import java.io.FileInputStream;3 import java.io.InputStream;4 5 import org.apache.poi.POIXMLDocument;6 import org.apache.poi.POIXMLTextExtractor;7 import org.apache.poi.hwpf.extractor.WordExtractor;8 import org.apache.poi.openxml4j.opc.OPCPackage;9 import org.apache.poi.xwpf.extractor.XWPFWordExtractor;10 11 public class Test {12 public static void main(String[] args) {13 try {14 InputStream is = new FileInputStream(new File("2003.doc"));15 WordExtractor ex = new WordExtractor(is);16 String text2003 = ex.getText();17 System.out.println(text2003);18 19 OPCPackage opcPackage = POIXMLDocument.openPackage("2007.docx");20 POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);21 String text2007 = extractor.getText();22 System.out.println(text2007);23 24 } catch (Exception e) {25 e.printStackTrace();26 }27 }28 }
转载请注明出处51数据库 » poi模板导出word模板