//表题
//表头
//数据
//合并区域
//是否显示网格线
//行号
//外边框加粗
//内边框普通
//设置打印区域
//打印设置
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);
}
分享到:
相关推荐
### POI生成Excel报表知识点详解 #### 一、Apache POI简介 Apache POI是Apache软件基金会的一个开源项目,主要用于处理Microsoft Office格式的文件。它提供了API来读写Word、Excel等Office文档格式。其中,处理...
**POI生成Excel** 生成Excel文件主要涉及以下步骤: 1. **创建Workbook对象**:这是Excel文件的顶级容器,可以是XSSFWorkbook(.xlsx格式)或HSSFWorkbook(.xls格式)。 2. **创建Sheet对象**:Sheet代表Excel...
Apache POI 是一个开源项目...以上是Apache POI生成Excel表格的基本知识点和操作步骤。通过这些示例,你可以理解如何在Java应用中利用POI进行Excel文件的创建、读取和修改,以及如何结合数据库操作实现数据的导入导出。
标题 "POI 生成EXCEL2007【含例子】" 涉及到的知识点主要集中在Apache POI库的使用上,这是一个强大的Java API,用于读取、写入和修改Microsoft Office格式的文件,特别是Excel文件。在这个场景中,重点是创建和操作...
在压缩包文件“GreateExcel”中,可能包含了示例代码或教程,用于演示如何使用Apache POI生成Excel报表。通过阅读和学习这个文件,开发者可以更好地理解和掌握使用Apache POI创建Excel报表的具体方法和技巧,提升...
在Java编程环境中,生成Excel报表是一项常见的任务,特别是在数据分析、数据导出或报表制作的场景中。本示例关注的是如何使用Java根据模板格式来创建适用于打印的专业Excel报表。这通常涉及到对Apache POI库的使用,...
在"Struts结合poi.jar生成Excel报表"的案例中,开发者首先需要将poi.jar库引入到项目中。这通常通过Maven或Gradle等依赖管理工具完成,或者直接将jar包添加到项目的类路径中。 poi.jar库包含了处理Excel文件所需的...
### POI 导入导出 Excel 生成报表详解 #### 一、概述 Apache POI 是一个用于读写 Microsoft Office 格式文件的 Java API,其中包括对 Excel 文件的支持。通过 POI,我们可以轻松地实现 Excel 文件的创建、读取、...
通过以上步骤,你就可以利用Java POI库根据Excel模板生成新的Excel文件了。这个过程可以用于批量生成报告、自定义报表或者动态数据填充等场景,大大提高了工作效率。同时,POI库提供了丰富的API,可以根据具体需求...
这篇博客"JAVA使用POI生成Excel文件"主要介绍了如何利用Apache POI来创建和操作Excel文档。 首先,我们需要了解Apache POI的基本概念。Apache POI是Apache软件基金会的一个开源项目,它提供了Java API,使得开发者...
### POI的EXCEL导出,自动换行 在日常工作中,经常需要处理大量的数据导入导出任务,...无论是简单的数据导出还是复杂的报表生成,POI都能够提供相应的解决方案。希望本文能够帮助大家更好地理解和使用Apache POI。
在本实例中,我们将关注使用 Apache POI 来生成 Excel 报表。这个简单的 POI 实例非常适合初学者参考,它能帮助你快速理解和应用 POI 库。 首先,让我们了解 POI 的核心组件——HSSF 和 XSSF。HSSF 是用来处理 .xls...
生成Excel报表的基本步骤如下: 1. **选择库**:根据项目需求和环境限制,选择合适的库(如EPPlus)。 2. **创建工作簿和工作表**:通过库的API创建一个新的Excel工作簿对象,并在其中添加工作表。 3. **填充数据...
通过上述步骤,你可以使用Apache POI结合Struts 2实现从Java Web应用中导出Excel报表的功能。这个过程涉及到了Java编程、面向对象设计、Web框架和文件处理等多个技术领域,对于Java开发者来说是一项非常实用的技能。
4. **生成Excel报表**:在Java中,可以使用Apache POI库来创建和操作Excel文件。POI提供了对Microsoft Office格式的支持,包括Excel。开发者可以通过创建HSSFWorkbook对象来创建一个新的Excel工作簿,然后添加工作表...
通过上述步骤,我们可以使用 Java POI 创建一个包含表头和数据的 Excel 报表,并能够自定义单元格的格式和样式。这对于需要定期生成报表的应用程序来说非常有用。此外,Java POI 还提供了更多高级功能,例如图表绘制...
在这个"poi 生成Excel的详细例子"中,我们将深入探讨如何利用Apache POI库来创建、编辑和格式化Excel工作簿。这个例子涵盖了从基本的单元格操作到复杂的样式设定,为开发者提供了全面的参考。 首先,我们需要导入...
标题中的“`java+poi+Excel模板`”指的是使用Java编程语言,结合Apache POI库来处理Microsoft Excel模板,以生成或编辑Excel报表的过程。Apache POI是一个流行的开源项目,它允许开发者使用Java读写Microsoft Office...
通过以上步骤,你可以使用Apache POI有效地操作Excel模板,并将数据填充到新生成的文件中。这在报表生成、数据分析、批量导出等方面非常实用。记得在实际项目中,还要处理异常、优化性能,比如使用缓冲流、避免频繁...