exportExcel

JavaWeb开发中采用FreeMarker生成Excel表格

左心房为你撑大大i 提交于 2020-04-30 19:54:37
最近做了一个需求,要求导出一个采购合同的Excel表格,这个表格样式比较多。由于是合同,这个Excel表格里面有好多格式要求,比如结尾处签字那部分就有格式要求。这里介绍种采用FreeMarker的api来生成Excel文件的方案 一、方案的对比 针对这个需求我想了2个方案,介绍如下 方案一:先做一个合同的表格模板,然后把变量都填充成类似EL表达式的样子。然后通过poi 相关类把模板读到内存中,把里面的变量的值替换,然后生成下载文件。 方案二:先做一个合同的表格模板,然后转换成xml文件,然后再改成FreeMarker的ftl文件。通过FreeMarker的Api 把往模板上填充数据,然后生成下载文件。 简单分析下上面的2个方案: 方案一比较适合那种模板中的行数不会变的场景,如果合同的头和尾是固定的,中间的行数不固定,那么就方案就不适合了。 方案二比方案一更灵活,由于FreeMarker的模板文件中可以使用很多标签,如( <#List></#List> );应付这种中间行数不固定的场景就是小case了。 所以,这种导出的Excel有格式要求的, 采用FreeMarker生成Excel是最好实现的。 二、介绍下FreeMarker方案实现过程 (1)把Excel模板的格式调好,另存为xml文件 (2)制作一个ftl模板,把xml文件内容copy进去,把变量换成FreeMarker的插值

复杂的POI导出Excel表格(多行表头、合并单元格)

耗尽温柔 提交于 2020-04-28 22:30:40
poi导出excel有两种方式: 第一种:从无到有的创建整个excel,通过HSSFWorkbook,HSSFSheet HSSFCell, 等对象一步一步的创建出工作簿,sheet,和单元格,并添加样式,数据等。 第二种:通过excel.xls 模板的方式,自己在桌面创建一个excel, 然后修改这个excel为模板,复制到项目中(我是放在根目录下),再然后读取模板,修改模板,给模板填充数据,最后把模板写入到另外一个excel2.xls中(硬盘中的)。 按我自己的理解,这种方式只适合,需要导出的内容是固定格式的,只需要填充一次数据的 情况。比如简历。 本文内容如下: 1. 使用 HSSFWorkbook 对象 实现excel导出。一般是导出excel2003 2. 使用 XSSFWorkbook 对象实现excel导出。 一般是导出excel2007 3. 使用 SXSSFWorkbook 对象实现excel导出。 一般是导出百万级数据的excel 4. 使用 template.xls 格式模板,实现excel导出。 一般是导出有固定字段的excel ———————————————— 本文介绍 HSSFWorkbook 导出Excel多行表头、合并单元格的表格 Java代码如下: /** * 导出excel (HSSFWorkbook) */ public void

vue项目中的elementUI的table组件导出成excel表

我们两清 提交于 2020-04-24 09:25:09
1、安装依赖: npm install - - save xlsx file - saver 2、在放置需要导出功能的组件中引入 import FileSaver from 'file-saver' import XLSX from 'xlsx' 3、HTML中的设置,简单来说就是给需要导出的table标签el-table上加一个id:如exportTab,对应下面的exportExcel方法中的 document.querySelector('#exportTab') 4、在methods中设置真正实现导出转换excel表格的方法,如下 exportExcel () { /* generate workbook object from table */ var xlsxParam = { raw: true } // 导出的内容只做解析,不进行格式转换 var wb = XLSX.utils.table_to_book(document.querySelector('#exportTab' ), xlsxParam) /* get binary string as output */ var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true , type: 'array' }) try { FileSaver

Vue+elementUI table 导出到excel

好久不见. 提交于 2020-04-24 09:24:54
需求:   Vue+element UI table下的根据搜索条件导出当前所有数据 参考:   https://blog.csdn.net/u010427666/article/details/79208145(vue2.0 + element UI 中 el-table 数据导出Excel) 准备工作:   1、安装依赖: npm install - - save xlsx file - saver   2、在放置需要导出功能的组件中引入      import FileSaver from 'file-saver'      import XLSX from 'xlsx'   3、HTML中的设置,简单来说就是给需要导出的table标签el-table上加一个id:如exportTab,对应下面的exportExcel方法中的 document.querySelector('#exportTab')   4、在methods中设置真正实现导出转换excel表格的方法,如下: exportExcel () { //表名 var xlsxParam = { raw: true } var wb = XLSX.utils.table_to_book(document.querySelector('.orderTable'),xlsxParam) var wbout = XLSX

不用 jsp 如何返回一个页面

百般思念 提交于 2020-01-07 03:20:31
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 答:通过将 文件 内容写出到 ServletOutputStream 中 例如: 在 struts中 Action: 说明:Action中方法的返回值 String 表示要 forward 的jsp页面,若要直接向浏览器写个页面,就直接返回void //导出用户列表 public void exportExcel(){ try { //1、查找用户列表 //2、导出 HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("application/x-execl"); response.setHeader("Content-Disposition", "attachment;filename=" + new String("用户列表.xls".getBytes(), "ISO-8859-1")); ServletOutputStream outputStream = response.getOutputStream(); userService.exportExcel(userService.findObjects(), outputStream); //流用完之后要关闭 if

原生PHP网页导出和导入excel文件实例

懵懂的女人 提交于 2019-12-06 06:25:24
原生PHP实现的网页导出和导入excel文件实例,包括上传也是用的原生。还可在exportExcel方法里设置字体等表格样式。 导出和导入表单代码: <p style="margin:10px 0"><a href="export.php" class="btn">导出</a></p> <form action="import.php" method="post" enctype="multipart/form-data"> <div class="control-group"> <label>Excel表格:</label> <input type="file" name="file"/> </div> <div class="control-group"> <input type="submit" value="导入" /> </div> </form> excel导出: $query = mysql_query("select * from user limit 50"); $i =0; $list = array(); while($row=mysql_fetch_array($query)){ $list[$i]['id'] = $row['id']; $list[$i]['username'] = $row['username']; $list[$i][

CI 3X 使用xlsxwriter.class.php导出数据到Excel文件

做~自己de王妃 提交于 2019-12-04 01:09:56
CI 3.1.9 使用 xlsxwriter.class.php 导出数据到 Excel 文件 使用 PHPExcel 类库导出数据库数据,当数据大于 50000 条记录时,导出效率较低。网上 github 有 xlsxwriter.class.php 类,能较好解决此问题。 GitHub 上有, https://github.com/mk-j/PHP_XLSXWriter ,有较为详细的示例,能较快上手,据说是 PHPExcel 团队的人写的。 使用步骤: 1 、首先在上面的那个网址下载好 xlsxwriter.class.php 。 2 、放在 application\libraries 目录下,更名为 xlsxwriter.php 。 3 、在 application\controllers 目录下新建控制文件 <?php class C_export_excel extends CI_Controller { function export_excel ( $data ) { $rows = $data ; // 注意,此 $data 一定是一个关联数组 $this -> load -> library ( 'xlsxwriter.php' ) ; // 直接载入类 // 将列名进行相应的数据类型设置,也可以将 xh 更改为:学号,汉字,将来生成的 execl 文件中

原生PHP网页导出和导入excel文件实例

◇◆丶佛笑我妖孽 提交于 2019-12-02 19:29:44
原生PHP实现的网页导出和导入excel文件实例,包括上传也是用的原生。还可在exportExcel方法里设置字体等表格样式。 导出和导入表单代码: <p style="margin:10px 0"><a href="export.php" class="btn">导出</a></p> <form action="import.php" method="post" enctype="multipart/form-data"> <div class="control-group"> <label>Excel表格:</label> <input type="file" name="file"/> </div> <div class="control-group"> <input type="submit" value="导入" /> </div> </form> excel导出: $query = mysql_query("select * from user limit 50"); $i =0; $list = array(); while($row=mysql_fetch_array($query)){ $list[$i]['id'] = $row['id']; $list[$i]['username'] = $row['username']; $list[$i][

原生PHP网页导出和导入excel文件实例

我的梦境 提交于 2019-12-02 19:21:45
原生PHP实现的网页导出和导入excel文件实例,包括上传也是用的原生。还可在exportExcel方法里设置字体等表格样式。 导出和导入表单代码: <p style="margin:10px 0"><a href="export.php" class="btn">导出</a></p> <form action="import.php" method="post" enctype="multipart/form-data"> <div class="control-group"> <label>Excel表格:</label> <input type="file" name="file"/> </div> <div class="control-group"> <input type="submit" value="导入" /> </div> </form> excel导出: $query = mysql_query("select * from user limit 50"); $i =0; $list = array(); while($row=mysql_fetch_array($query)){ $list[$i]['id'] = $row['id']; $list[$i]['username'] = $row['username']; $list[$i][