//表题
//表头
//数据
//合并区域
//是否显示网格线
//行号
//外边框加粗
//内边框普通
//设置打印区域
//打印设置
public static Workbook getWorkbook(ProjectStatReporter reporter){
List<String> x=reporter.getX();
List<String> f=reporter.getStatField();
List<List<String>> y=reporter.getY();
Workbook workbook = new HSSFWorkbook();
Sheet sheet=workbook.createSheet();
//x行 和度量值
Row rowx=sheet.createRow(0);
Row rowf=sheet.createRow(1);
Font font = workbook.createFont();
font.setFontName("宋体");
font.setBoldweight(Font.BOLDWEIGHT_BOLD);
for(int i=0;i<x.size();i++){
//x
RichTextString richString = new HSSFRichTextString(x.get(i));
richString.applyFont(font);
createCell(workbook, rowx, i*f.size()+1, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_BOTTOM,richString);
//度量值
for(int j=0;j<f.size();j++){
RichTextString richString2 = new HSSFRichTextString(f.get(j));
richString2.applyFont(font);
createCell(workbook, rowf, i*f.size()+1+j, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_BOTTOM,richString2);
}
}
//y数据
for(int i=0;i<y.size();i++){
Row row=sheet.createRow(i+2);
for(int j=0;j<y.get(i).size();j++){
if(j==0){//第一列 字体加粗
RichTextString richString = new HSSFRichTextString(y.get(i).get(j));
richString.applyFont(font);
createCell(workbook, row, j, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_BOTTOM,richString);
}else{
createCell(workbook, row, j, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_BOTTOM,y.get(i).get(j));
}
}
}
//合并区域
sheet.addMergedRegion(new CellRangeAddress(0,1,0,0));//左上角的空白
for(int i=0;i<x.size();i++){//合并x
sheet.addMergedRegion(new CellRangeAddress(0,0,i*f.size()+1,i*f.size()+1+f.size()-1));
}
//样式:不显示网格线 居中 行号25.5 外边框加粗 内边框普通 row0 1 字体宋体加粗 col 1 字体宋体加粗
//不显示网格线
sheet.setDisplayGridlines(false);
//居中 row0 1 字体宋体加粗 col 1 字体宋体加粗
//调用createcell()
//行号25.5
for(int i=0;i<2+y.size();i++){
Row row=sheet.getRow(i);
row.setHeightInPoints((float) 25.5);
}
//外边框加粗
CellRangeAddress region=new CellRangeAddress(0,2+y.size()-1,0,x.size()*f.size());
RegionUtil.setBorderBottom(CellStyle.BORDER_THICK, region, sheet, workbook);
RegionUtil.setBorderLeft(CellStyle.BORDER_THICK, region, sheet, workbook);
RegionUtil.setBorderRight(CellStyle.BORDER_THICK, region, sheet, workbook);
RegionUtil.setBorderTop(CellStyle.BORDER_THICK, region, sheet, workbook);
//内边框普通
//调用createcell() 中设置
//返回
//测试
Sheet sheet1 = workbook.createSheet("new sheet");
sheet1.groupRow( 5, 14 );
sheet1.groupRow( 7, 14 );
sheet1.groupRow( 16, 19 );
sheet1.groupColumn( (short)4, (short)7 );
sheet1.groupColumn( (short)9, (short)12 );
sheet1.groupColumn( (short)10, (short)11 );
return workbook;
}
private static void createCell(Workbook wb, Row row, int column, short halign, short valign,String text){
Cell cell = row.createCell(column);
cell.setCellValue(text);
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setAlignment(halign);
cellStyle.setVerticalAlignment(valign);
cellStyle.setBorderBottom(CellStyle.BORDER_THIN);
cellStyle.setBorderLeft(CellStyle.BORDER_THIN);
cellStyle.setBorderRight(CellStyle.BORDER_THIN);
cellStyle.setBorderTop(CellStyle.BORDER_THIN);
cell.setCellStyle(cellStyle);
}
private static void createCell(Workbook wb, Row row, int column, short halign, short valign,RichTextString richText){
Cell cell = row.createCell(column);
cell.setCellValue(richText);
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setAlignment(halign);
cellStyle.setVerticalAlignment(valign);
cell.setCellStyle(cellStyle);
cellStyle.setBorderBottom(CellStyle.BORDER_THIN);
cellStyle.setBorderLeft(CellStyle.BORDER_THIN);
cellStyle.setBorderRight(CellStyle.BORDER_THIN);
cellStyle.setBorderTop(CellStyle.BORDER_THIN);
cell.setCellStyle(cellStyle);
}
分享到:
相关推荐
Java生成Excel图表的步骤: 1. 导入必要的库和框架,例如JFreeChart、Apache POI等。 2. 创建一个Java类,例如CreateChartServiceImpl。 3. 在main方法中,创建一个CreateChartServiceImpl对象,并调用其方法来...
此外,POI还可以用于生成报表、图表等。 8. POI与其他Office文档处理库的比较 POI与其他Office文档处理库,例如Apache OpenXML、JExcelApi等,具有不同的特点和优缺点。POI的优点是它可以操作多种Office文档格式,...
在Java开发中,生成Excel报表是一项常见的任务,特别是在数据分析、数据导出或提供用户友好的数据展示场景下。本文将详细探讨如何使用Java技术来创建Excel报表,主要涉及两个核心部分:数据库连接和使用Apache POI库...
Java 生成 Excel 文件的步骤 1. 首先,需要引入 Apache POI 库,Apache POI 库提供了一个完整的解决方案来生成 Excel 文件。 2. 创建一个 HSSFWorkbook 对象,用于生成 Excel 文件。 3. 创建一个 HSSFSheet 对象,...
POI提供了一套API,可以方便地操作Excel的单元格、行、列以及样式等元素,使得在Java中生成复杂的Excel报表成为可能。 2. 使用模板方法 面对复杂的报表结构,直接通过代码生成所有细节可能会变得非常繁琐且容易出错...
然而,当需要自动化生成复杂的Excel报表时,手动操作的效率就显得低下,此时,结合Java编程语言和Apache POI库,我们可以实现动态生成Excel报表的功能。本文将详细介绍如何利用Java+POI+模板的方式打造复杂Excel报表...
【poi制作报表】是关于Java开发中利用Apache POI库创建和操作Microsoft Excel报表的技术介绍。Apache POI是一个开源项目,主要目标是处理OLE2对象,尤其是与Microsoft Office相关的文件格式,如Excel(HSSF接口)和...
2. 创建 Excel 文件:使用 Apache POI 生成 Excel 文件,选择报表格式和输出路径。 3. 导出 Excel 文件:使用 Apache POI 导出 Excel 文件。 在 JSP 中可以使用多种方式来导出 PDF 和 Excel 文件。使用 iReport 和 ...
Struts2 和 Apache POI 的结合使用...通过以上步骤,可以成功利用 Struts2 和 Apache POI 实现 Web 应用程序中的 Excel 导出功能。这个功能广泛应用于数据分析、报表生成、数据交换等多种场景,极大地提高了工作效率。
总之,PageOffice为Java开发者提供了一种高效、灵活的解决方案,可以在服务器端直接生成Excel报表,无需依赖JXL或POI。通过适当的配置和编程,你可以快速地构建起动态Excel报表系统,满足各种业务需求。
利用Java生成Excel文件是一项常见的需求,特别是在数据处理和报表生成的场景中。Apache POI是一个强大的库,专门用于处理Microsoft Office格式的文件,包括Excel。本文将详细介绍如何使用Java和POI库生成Excel文件,...
【Java-Excel报表开发POI】使用Apache POI库创建和读取Excel文件是Java开发者进行数据导出或报告生成的常见任务。Apache POI是一个开源项目,它提供了API来处理Microsoft Office格式,特别是Excel(.xls和.xlsx)。...
Java 使用 Apache POI 读取 Excel 文件是一种常见的数据处理任务,尤其在数据分析、报表生成以及自动化测试等场景中。Apache POI 是一个流行的开源库,它允许开发者在 Java 应用程序中创建、修改和显示 Microsoft ...
在本教程中,我们将深入探讨如何使用POI库生成Excel报表。 **1. POI简介** POI是Apache软件基金会Jakarta项目的一部分,提供了一个纯Java的解决方案来处理Microsoft Excel(XLS)文件。HSSF(Horrible Spreadsheet ...
加以下 Java 代码,以实现在空白 Excel 文件中创建出差开支预算表的功能: ```java Controller controller = new Controller(request);...这为开发者提供了一种高效、灵活的方式来处理动态生成Excel报表的需求。
【JAVA使用POI操作Excel详解】 Apache POI 是一个开源的Java库,它允许程序员创建、修改和显示Microsoft Office格式的文件,特别是...无论是在数据分析、报表生成还是数据导入导出场景中,POI都是一个非常实用的工具。
通过使用POI,开发者可以在SSM项目中生成动态的Excel报表,方便数据的导出和分析。 要将POI集成到SSM框架中,首先需要从Apache官网下载相应的jar包,这些包通常包括poi-ooxml和poi-ooxml-schemas等。将它们添加到...
通过以上步骤,你可以创建一个Spring Boot服务端,接收请求后生成Excel文件并返回给客户端进行下载。这种方式在需要批量导出数据或者报表时非常有用,可以提高工作效率,减少手动操作。记得在实际应用中,还需要考虑...
- **服务器端应用**:在 Web 应用中,POI 可用于生成报表或导出数据到 Excel,避免了在服务器端依赖本地代码或客户端插件的需求。 - **兼容性**:HSSF 提供了与 Excel 文件的高兼容性,生成的文件能被所有版本的 ...