• POI 设置单元格样式


    public static void writeExcel(List<ServAuthBean> data_list){
    		//新建工作簿
    		HSSFWorkbook workbook = new HSSFWorkbook();
    		
    		//自定义颜色
    		HSSFPalette palette = workbook.getCustomPalette();
    		//十六进制颜色RGB码
    		String color = "99CC00";
    		//将十六进制码转为十进制数字
    		int r = Integer.parseInt(color.substring(0, 2), 16);
    		int g = Integer.parseInt(color.substring(2, 4), 16);
    		int b = Integer.parseInt(color.substring(4, 6), 16);
    		//自定义索引颜色
    		palette.setColorAtIndex((short)9, (byte)r, (byte)g, (byte)b);
    		
    		//创建单元格样式
    		HSSFCellStyle cell_style = workbook.createCellStyle();
    		//此处将HSSFCellStyle.SOLID_FOREGROUND改为FillPatternType.SOLID_FOREGROUND,网上搜索资料一堆错误用法
    		cell_style.setFillPattern(FillPatternType.SOLID_FOREGROUND);  
    		cell_style.setAlignment(HorizontalAlignment.CENTER);
    		cell_style.setFillForegroundColor((short)9);
    		//以下为API自带的颜色设置
    //		cell_style.setFillForegroundColor(IndexedColors.BRIGHT_GREEN1.index);    
    		
    		//自定义字体颜色, 同单元格样式
    		HSSFFont font = workbook.createFont();
    		font.setFontHeightInPoints((short) 9);
    		//字体设置为Arial
    		font.setFontName(HSSFFont.FONT_ARIAL);   
    		//设置索引 10 为白色
    		palette.setColorAtIndex((short)10, (byte) 255, (byte) 255, (byte) 255);
    		//将字体颜色设为白色
    		font.setColor((short)9);
    		cell_style.setFont(font);
    		
    		//创建sheet表格
    		HSSFSheet sheet = workbook.createSheet("ServAuth");
    		//设置单元格列宽
    		sheet.setColumnWidth(1, 50*100);
    		sheet.setColumnWidth(2, 50*100);
    		sheet.setColumnWidth(3, 50*100);
    		
    		// 创建报文头第一行
    		HSSFRow row_0 = sheet.createRow(0);
    		HSSFCell cell0 = row_0.createCell(0);
    		// 数据域个数
    		cell0.setCellValue("数据域个数");
    		cell0.setCellStyle(cell_style);
    
    		// 第二行赋值操作
    		HSSFRow row_1 = sheet.createRow(1);
    		row_1.createCell(0).setCellValue(10);
    		
    		// 第三行赋值
    		HSSFRow row_2 = sheet.createRow(2);
    		HSSFCell cell_2_0 = row_2.createCell(0);
    		cell_2_0.setCellValue("服务编号");
    		cell_2_0.setCellStyle(cell_style);
    		HSSFCell cell_2_1 = row_2.createCell(1);
    		cell_2_1.setCellValue("服务请求方代码");
    		cell_2_1.setCellStyle(cell_style);
    		HSSFCell cell_2_2 = row_2.createCell(2);
    		cell_2_2.setCellValue("授权标志");
    		cell_2_2.setCellStyle(cell_style);
    		
    		// 第四行往后用查询数据填充
    		int row_num = 3;
    		for (ServAuthBean data_bean : data_list) {
    			HSSFRow row = sheet.createRow(row_num);
    			row.createCell(0).setCellValue(data_bean.getServ_id());
    			row.createCell(1).setCellValue(data_bean.getApps_sys_id());
    			row.createCell(2).setCellValue(data_bean.getStatus());
    			row_num++;
    		}
    		
    		//文件名
    		String file_name = "授权.xls";
    		
    		FileOutputStream fos = null;
    		try {
    			fos = new FileOutputStream(file_name);
    			try {
    				workbook.write(fos);
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				if(workbook != null) {
    					workbook.close();
    				}
    				if(fos != null) {
    					fos.close();
    				}
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    	}
    

     最近项目遇到用POI导出文件,碰到关于excel单元格样式的问题,谨记录一波!

  • 相关阅读:
    多个断言连续执行pytest-assume && try except assert 错误思路
    allure钩子函数 && selenium 截图的四种方式 && allure集成错误截图报告
    --clean-alluredir && 用例优先级@allure.severity
    参数化(parametrize)allure用例描述的两种方式 第二种重点
    allure step 编写测试用例的两种方式
    allure与测试用例的故事 feature story title issue
    windows安装jenkins并集成allure 附jenkins插件安装缓慢问题
    git 使用开发 pycharm远程提交到仓库
    Java 集合框架
    Java 迭代器iterator
  • 原文地址:https://www.cnblogs.com/jet-angle/p/9935528.html
Copyright © 2020-2023  润新知