最近在使用Apache的POI组件对Excel进行操作,在对excel导出的时候,导出的数字本来只有两位小数,得到的结果就变成了很多位小数.如下面的图所示: 虽然对单元格使用了setCellStyle,但还是治标不治本,显示虽然是只显示两位小数了,但是点开还是有很长的一串小数位,这很不爽,这什么原因导致的呢?我们来看看. 我首先debug看一下,在设置单元格的值时候,数据一切正常,数据库读出的数据也为0.44,没看出一点猫腻.随后我再仔细看看,在看到cell.setCellValue(doubl…
在使用POI进行将数据导出到Excel时, 若要将eChart在前端生成的统计图(如柱状图.折线图.饼图等)一并导出,使用POI在后台构建数据图比较复杂,因此我选择将eChart在前端的统计图的base64编码作为参数传到后台,再到后台解析成图片插入Excel实现导出时附带统计图的效果,下面是我的部分代码,仅供参考. 第一步:在页面eChart的初始化方法中,将eChart赋给一个全局变量 第二步:在AJAX获取参数方法中,将eChart对象的图片64位编码作为参数传到后台 第三步:到后台获取参…
/** * 导出复杂excel 合并单元格 (HSSFWorkbook) */ @GetMapping("/testHSSFWorkbook.do") public void testExport1(HttpServletResponse response) throws Exception { /** 第一步,创建一个Workbook,对应一个Excel文件 */ HSSFWorkbook wb = new HSSFWorkbook(); /** 第二步,在Workbook中添加一个…
因为在工作中,可能因为不同的原因遇到不同的问题,本人就分享遇到的一个大坑 因为我要将数据库中的一部分字段的名称作为Excel中的列名,所以需要导出汉字,然后在对应的汉字下面填充数据. 正是因为这部分汉字,在使用的过程中.导出的表格,所有的汉字都挤在了一起, 并没有达到我们想要的效果所以我在这里进行了以下设置: 引入的依赖为: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</…
在没用过poi之前感觉poi是很高大上的样子, 项目中用了发现poi的代码重复性很高类似于jdbc的模板代码, 项目中如果大量使用最好封装起来; 总结一下归结为6步 1 打开或新创建一个工作薄(使用HSSFWorkBook创建或打开一个工作薄HSSFSheet对象) 2 在工作薄基础上创建行对象(使用HSSFSheet对象创建HSSFRow对象) 3 在行上创建单元格,相当于列(使用HSSFRow对象创建HSSFCell对象) 4 在单元格添加内容(使用HSSFCell的setCellValue…
/** * 导出excel (HSSFWorkbook) */ @GetMapping("/testExport") public void testExport1(HttpServletResponse response) { /** 第一步,创建一个Workbook,对应一个Excel文件 */ HSSFWorkbook wb = new HSSFWorkbook(); /** 第二步,在Workbook中添加一个sheet,对应Excel文件中的sheet */ HSSFShee…
小白的总结,大神勿喷:需要转载请说明出处,如果有什么问题,欢迎留言 一.需求: 1.某一列 .某一行或某些单元格不可编辑,其他列可以编辑 二.期间遇到的问题 1.无法设置成不可编辑 2.设置为不可编辑,导出后发现所有单元格均不可编辑: 原因:createCell();创建单元格后,单元格默认是锁定状态:protectSheet("密码");保护工作表是保护所有锁定的单元格: 三.解决问题 不多BB,直接上代码 HSSFWorkbook wb = new HSSFWorkbook();…
在数据导出到excel时数字格式不对,一般分为以下两种情况. 1.excel单元格设置长度不够 解决方法: //在excel.php文件中 $objActSheet = $objPHPExcel->getActiveSheet(); // 设置 栏目名称 $objActSheet->setCellValue("b1", "卡号"); // 设置列的宽度 $objActSheet->getColumnDimension('b')->setWid…
做过很多次导出excel了.都碰到一个问题,内容里如果包含一个比较长的数字,比如订单号“2546541656596”,excel会自动变成科学计数法... 弄过好几次都没有解决,最近又要导出excel了,下决心一定要找到解决办法 自己在excel里测试过,较长的数字,都会自动变成科学计数法,除非我们把单元格格式设置成“文本型” 哈哈,似乎找到了思路:用poi先把单元格设置成“文本型”就可以了把. 从文档里找到了这个方法HSSFCell.setCellType(int type),怎么看这个方法都…
1.Apache POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能. .NET的开发人员则可以利用NPOI (POI for .NET) 来存取 POI 的功能. 2.POI结构 HSSF - 提供读写Microsoft Excel XLS格式档案的功能.XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能.HWPF - 提供读写Microsoft W…