实现导出功能,导出的数据中有文本格式,也有货币格式,所以为了方便在将来导出的表格中做计算,存放货币的单元格需要设置为数值类型。 ...通过poi导出excel的过程大致是这样的: 规定单元格的格式 ↓ 创建单元格 ↓ 设置单元格的格式 ↓ ...设置数据的格式 ↓ 把数据存放到单元格中 ↓ 通过IO流输出 背景POI导出Excel时设置单元格类型为数值类型 ---- 要想存放数值的单元格以数值类型导出...,如果为数值型,则设置单元格格式为整数或者小数; 2、然后往单元格中存放数据的时候要设置数据的格式为double类型,如果查看poi的源码HSSFCell.java会发现设置数据的方法如下,所以用...---- 【 转载请注明出处——胡玉洋《POI导出Excel时设置单元格类型为数值类型》】
在excel中,只需要动动小手指,就可以完成设置单元格格式的操作,java应用poi导出excel时,也有很多种格式供我们选择,下面整理一下最近遇到的单元格格式,掌握了以下内容,想要设计出满足需求的excel...先创建一个工作簿: HSSFWorkbook workbook=new HSSFWorkbook(); //创建工作簿 设置单元格的样式 ---- HSSFCellStyle主要用来设置单元格本身的格式...中可以用short类型的数值、IndexedColors类等方式设置颜色(为了代码可读建议用后者),更多颜色可以参考《POI设置单元格背景颜色》 (2)设置单元格边框类型 cellStyle.setBorderTop...(3)设置单元格边框颜色 cellStyle.setTopBorderColor(IndexedColors.BLUE.getIndex());//上边框为蓝色 cellStyle.setBottomBorderColor...设置字体为宋体 还可以设置“仿宋”、”黑体”、”楷体”…… (2)设置字体大小 font.setFontHeightInPoints((short) 16); 数值越大,字体越大哦~~
public void dropDownBox(Workbook wb, int size) { Sheet oneSheet = wb.getSheetAt(0); //为指定范围内的单元格添加下拉框样式
poi是读写excel最常用的一个开源中间件,实际使用中我们可能会遇到这样的需求:限制某列单元格只能输入特定的内容,这就是excel的下拉列表特性,以下是wps中excel的一个截图: 从上图可以看出...,维护下拉选项有两种方式: 1.手动添加下拉选项 2.从单元格选择下拉选项 第一种方式的缺点就是单元格字节数不能超过255个字,笔者在实际使用中输入的内容远超过这个数,所以笔者选择的是第二种方案,笔者新建了一个...XSSFDataValidationConstraint constraint = new XSSFDataValidationConstraint(ValidationType.LIST,strFormula); // 设置数据有效性加载在哪个单元格上
核心代码: CellRangeAddress region = new CellRangeAddress(rowNum2-(chongfucishu-1), r...
cell.getCellStyle().getDataFormat();根据这个值进行时间、日期格式的判断; POI读取出来的结果也是有些变化的;需要在实际项目中进行确认; 日期格式的遍历:Excel2007...和Excel2003都是这样的结果; 时间格式的遍历: 增加了其它日期格式的处理: // 读取cell单元格的值,如果为日期格式,进行转换 @SuppressWarnings("deprecation...().toString().trim(); //return String.valueOf(cell.getNumericCellValue());这样会导致excel单元格设置为文本...,但是存储数字的读取到的字符串为2.123E5之类的指数类型,所以笔者选择上面的处理方式将非日期的单元格先强制设置为文本格式,然后按照文本格式读取!...} return result; } return ""; } 需要注意的是:在调用getCellValue方法之前不用设置该单元格格式
第一列占据一列,中间数据每个占用一个单元格,最后一列与第一列占用相同的行数,这时我们需要获取起始单元格占用几行(起始行--结束行),获取到这些数据后我们就能读取中间单元格数据(这些数据可以作为上面单元的一个属性...} } return new Result(false,0,0,0,0); } 注:通过上面这个方法我们就能验证某个单元格是否是合并单元格...,以及该单元格所属的合并单元格的开始行、结束行、起始列以及结束列,由于我们使用excel时习惯上把第一行当做行1(POI中第一行行号为0),所以每个数据都加了1.
在使用poi解析Excel文件时,会发现,表格中的日期解析出来是一个数字,如下: 这是Excel表格的截图: ? 这是poi解析出来的这个日期的结果: ?...这个数字是什么呢?是以1900年为原点,到2015年8月21日,之间经过的天数。 知道这个后,就很好处理了,我们拿到1900年的日期,在这个日期上加上42237天即可。...GregorianCalendar(1900,0,-1); Date d = calendar.getTime(); 然后,利用DateUtils的方法,加上天数(截图案例中,这个天数被转为了字符串,值为42237
POI是一个不错的库,我们可以使用这个库读写EXCEL,WORD等类型文件,EXCEL尤其使用比较广泛,下面直接给出代码: private String readExcelCell(Sheet sheet...result=null; try { Cell cell = sheet.getRow(row-1).getCell(col-1,Row.CREATE_NULL_AS_BLANK); //可以根据需要设置需要的单元格类型...logger.error("readExcel异常,excel数据有问题",e); result=null; } return result; } 注:我这里传入的行号与列号都是人操作excel使用的数字...,所以比POI使用的行号、列号大1,所以在sheet.getRow(row-1).getCell(col-1,Row.CREATE_NULL_AS_BLANK)的时候都要减去1!!
项目场景 最近项目使用POI按模板导出Excel, 需要设置一些单元格的字体为红色..... ---- 问题描述 我只想修改某个单元格字体为红色,心想这还不简单吗?Cell->CellStyle->Font->color,看起来是那么湿滑,红色是生效了,但。。。...先上代码:我相信这应该是99%的人的逻辑: 获取要修改的cell.CellStyle和Font 设置cell.Font颜色为红色:IndexedColors.RED.getIndex() 将修改设置回cell.Font...我的项目场景是需要修改单元格字体为红色,但这里有必要先提下新创建的单元格如何设置样式的。...设置单个单元格的样式 POI设置某一单元格的字体颜色
需求 导出excel的时候需要导出某些通过公式计算的单元格 场景一 将公式写入某个单元格并执行计算 @Test public void formulaTest2() throws IOException...Workbook book = new XSSFWorkbook(in); Sheet sheet = book.getSheet("formula"); // 这里必须要设置为...sheet.setForceFormulaRecalculation(true); Cell cell = sheet.getRow(6).getCell(2); // 可跨sheet页,"基础参数"为另外一个...FileInputStream inputStream = new FileInputStream("D:\\2345Downloads\\datupian.png"); //利用POI...提供的工具类把文件流转化成二进制数据 byte[] bytes = IOUtils.toByteArray(inputStream); //向POI内存中添加一张图片
m_ptrListItem; //保存Item颜色表 CPtrList m_colTextColor; //保存列字体颜色 CPtrList m_ItemTextColor; //保存单元格字体颜色...bool FindItemColor(int col,int row,COLORREF &color); void SetColColor(int col,COLORREF color); //设置列颜色...void SetItemColor(int col,int row,COLORREF color); //设置Item颜色 void SetColTextColor(int col,COLORREF...color); //设置列文本颜色 void SetItemTextColor(int col,int row,COLORREF color); COLORREF m_color...->rgb = color; m_ptrListItem.AddTail(pColor); } BOOL CListCtrlCl::SetTextColor(COLORREF cr) //设置字体颜色
使用POI读取数字单元格的数据有两种方式: 1.通过setCellType将单元格类型设置为字符串,然后通过getRichStringCellValue读取该单元格数据,然后将读取到的字符串转换为响应的数字类型...,比如BigDecimal,int等,如何转换这里不再赘述 2.通过setCellType将单元格类型设置为数字类型,然后通过getNumericCellValue读取该单元格数据 但这里需要注意的是...:由于excel自身底层的问题,在你设置单元格类型为数字类型的时候,该单元格底层类型可能还是 保持着最初的字符串类型,这个时候通过通过第二种方式将获取到不正确的数据,修改该单元格样式后再按下回车键将会消除这个问题...(关于这个可以参考我的另外一篇“POI通过getDateCellValue读取excel中自定义日期失败”),这种单元格会有个特点,你把鼠标移动到该单元格,将会有如下提示: 看到了么,0.345单元格左边有个黄色提示...,点开你可以将该单元格设置为数字类型,这时才真正完成该单元格数据类型的切换,可惜的是最初字符串格式转日期类型却没有这种提示!!
以下例子为HR系统中一个员工管理模块,导出员工数据为Excel文件的功能。...系统结构为:Struts2+MyBaties+Spring3+MySQL HTML、JS: <input type="button" value="导出EXCEL" onclick="excelFn...; /** 创建第一行作为标题行 */ HSSFRow row = sheet.createRow(0); /** 循环创建第一行中的<em>单元格</em>...// 获取该Field的值 Object res = field.get(obj); // <em>设置</em><em>单元格</em>的值...} catch (Exception e) { e.printStackTrace(); } // <em>设置</em>响应头
,便于设置单元格的属性 write(OutputStream out) 用于将文件写入到文件中 close() setSheetName(int sheetIx,String name) 为指定索引的工作表设置名称...void setCellStyle(XSSFCellStyle style) 将设置的风格样式添加到单元格中,否则将不会起作用 列 列对应的类为XSSFCell,2007之前对应的是HSSFCell...常用的单元格类型 常用的单元格的类型有字符串,数字,布尔值,空值,可以使用XSSFCell的int getCellType() 方法获取类型 CELL_TYPE_BLANK 空值 CELL_TYPE_STRING...() 读取单元格中的字符串内容 double getNumericCellValue() 读取单元格中的数字类型的内容 boolean getBooleanCellValue...() 获取单元格中的布尔类型的内容 设置单元格样式 对应的类为XSSFCellStyle 常用的方法 void setAlignment(HorizontalAlignment
;//输出文件名称 header('Cache-Control: max-age=0');//禁止缓存 } 下面我们以年级、班级、学生成绩为例介绍一些常用的样式(设置字体、设置边框、合并单元格...、设置、设置背景色、以及单元格内换行、单元格不以科学记数法显示等) 首先我们建一个数据表并插入一些数据 insert.php----插入测试数据文件 <?...setRowHeight(30);//设置默认行高 $objSheet->getRowDimension(2)->setRowHeight(50);//设置第二行行高 $objSheet->getRowDimension...scoreIndex)->getNumberFormat() ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);//设置某列单元格格式为文本格式....phpTemp -----------存放于临时文件夹 cache in memory_ memcache ----------存放于memcache里 以memcache为例子简单的说明一下
System.out.println(row.getLastCellNum()); // 获取当前行最后内容单元格往后下一个单元格的索引 // 输出:7 // 输出值为:最后内容单元格索引+1...= null) { // 单元格未经过编辑的情况下,一定为null //cell为null的情况下,对空单元格调用API会导致上述for循环提前结束 CellType cellType..., // // 数字(整数、小数、日期) STRING(1), FORMULA(2), // 公式,即单元格内容通过公式计算出来 BLANK(3), // 为空//什么时候会存储空值...firstCell.setCellValue("hello"); // 设置单元格的值 Cell secondCell = row.createCell(1); //...firstCell = row.createCell(0, CellType.STRING); // 设置单元格的值和类型 firstCell.setCellValue("你好");
PhpOfficePhpSpreadsheetSpreadsheet; $spreadsheet = new Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); 字体 第1行代码将A7至B7两单元格设置为粗体字...,Arial字体,/ /10号字;第2行代码将B1单元格设置为粗体字。.../images/officelogo.jpg'); $drawing->setHeight(36); 列宽 将A列宽度设置为30(字符)。...$spreadsheet->getActiveSheet()->getDefaultRowDimension()->setRowHeight(15); 对齐 将A1单元格设置为水平居中对齐。...hellonworld"); $spreadsheet->getActiveSheet()->getStyle('A4')->getAlignment()->setWrapText(true); 超链接 将单元格设置为超链接形式
行则使用数字表示,例如;A3 表示第三行第一列,E5表示第五行第五列。 ? 1.2 POI工具包 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI 。...jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel。而poi可以操作Excel 95及以后的版本,即可操作后缀为 .xls 和 .xlsx两种格式的excel。...,row已经确定行号,列好作为参数,第一列从0开始计算 HSSFCell cell=row.createCell(2); //设置单元格(第一行第三列)...的单元格对应POI的XSSFCell对象。...文件后缀为.xlsx 查看POI api文档,我们可以查询POI中所有这些对象的属性和方法。
textValue = value.toString(); } // 如果不是图片数据,就利用正则表达式判断textValue是否全部由数字组成...p.matcher(textValue); if (matcher.matches()) { // 是数字当作...现在我们需要修改导出的标题样式或者数据行样式的话,我们只需要写个类继承AbstractCellStyle,然后设置字体和样式即可,是不是很方便。...else textValue = cellEntity.getConversion().transferData(value); 就按上面车辆状态来举个相应的例子吧,判断传入的类型是否为0.../src/main/java/com/utils/poi/update_2 后续会增加其他各种各样的工具项目,觉得不错的给个star,谢谢
领取专属 10元无门槛券
手把手带您无忧上云