POI生成excel表格,如何合并单元格
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.Region;
public class ExcelTest {
/**
* @param args
*/
public static void main(String[] args) throws IOException {
try {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");
HSSFCellStyle style = wb.createCellStyle(); // 样式对象
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 水平
HSSFRow row = sheet.createRow((short) 0);
HSSFRow row2 = sheet.createRow((short) 1);
sheet.addMergedRegion(new Region(0, (short) 0, 1, (short) 0));
HSSFCell ce = row.createCell((short) 0);
ce.setEncoding(HSSFCell.ENCODING_UTF_16);// 中文处理
ce.setCellValue("项目\\日期"); // 表格的第一行第一列显示的数据
ce.setCellStyle(style); // 样式,居中
int num = 0;
for (int i = 0; i < 9; i++) { // 循环9次,每一次都要跨单元格显示
// 计算从那个单元格跨到那一格
int celln = 0;
int celle = 0;
if (i == 0) {
celln = 0;
celle = 1;
} else {
celln = (i * 2);
celle = (i * 2 + 1);
}
// 单元格合并
// 四个参数分别是:起始行,起始列,结束行,结束列
sheet.addMergedRegion(new Region(0, (short) (celln + 1), 0,
(short) (celle + 1)));
HSSFCell cell = row.createCell((short) (celln + 1));
cell.setCellValue("merging" + i); // 跨单元格显示的数据
cell.setCellStyle(style); // 样式
// 不跨单元格显示的数据,如:分两行,上一行分别两格为一格,下一行就为两格,“数量”,“金额”
HSSFCell cell1 = row2.createCell((short) celle);
HSSFCell cell2 = row2.createCell((short) (celle + 1));
cell1.setEncoding(HSSFCell.ENCODING_UTF_16);
cell1.setCellValue("数量");
cell1.setCellStyle(style);
cell2.setEncoding(HSSFCell.ENCODING_UTF_16);
cell2.setCellValue("金额");
cell2.setCellStyle(style);
num++;
}
// 在后面加上合计百分比
// 合计 在最后加上,还要跨一个单元格
sheet.addMergedRegion(new Region(0, (short) (2 * num + 1), 0,
(short) (2 * num + 2)));
HSSFCell cell = row.createCell((short) (2 * num + 1));
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("合计");
cell.setCellStyle(style);
HSSFCell cell1 = row2.createCell((short) (2 * num + 1));
HSSFCell cell2 = row2.createCell((short) (2 * num + 2));
cell1.setEncoding(HSSFCell.ENCODING_UTF_16);
cell1.setCellValue("数量");
cell1.setCellStyle(style);
cell2.setEncoding(HSSFCell.ENCODING_UTF_16);
cell2.setCellValue("金额");
cell2.setCellStyle(style);
// 百分比 同上
sheet.addMergedRegion(new Region(0, (short) (2 * num + 3), 0,
(short) (2 * num + 4)));
HSSFCell cellb = row.createCell((short) (2 * num + 3));
cellb.setEncoding(HSSFCell.ENCODING_UTF_16);
cellb.setCellValue("百分比");
cellb.setCellStyle(style);
HSSFCell cellb1 = row2.createCell((short) (2 * num + 3));
HSSFCell cellb2 = row2.createCell((short) (2 * num + 4));
cellb1.setEncoding(HSSFCell.ENCODING_UTF_16);
cellb1.setCellValue("数量");
cellb1.setCellStyle(style);
cellb2.setEncoding(HSSFCell.ENCODING_UTF_16);
cellb2.setCellValue("金额");
cellb2.setCellStyle(style);
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
System.out.print("OK");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
分享到:
相关推荐
### Java后端生成PDF模板合并单元格表格案例详解 #### 概述 本文将详细介绍一个Java后端生成PDF模板,并在此基础上实现单元格合并功能的案例。案例的主要目的是展示如何在Java环境中创建复杂的表格结构,并将其导出...
在“java使用POI插件绘制表格曲线图”这个主题中,我们将深入探讨如何使用POI来在Excel工作表中绘制曲线图表。Apache POI提供了一个API,使得开发者可以方便地创建图表,包括曲线图,而无需依赖其他外部插件。 首先...
在Java开发中,Apache POI 提供了一套丰富的API,使得开发者能够方便地读取、写入和修改Excel电子表格。本篇文章将详细介绍如何使用Apache POI 导入数据到Excel。 首先,你需要在项目中引入Apache POI相关的库。...
标题中的“POI单元格的合并、数据行的分组以及Excel窗口的冻结”涉及到Apache POI库在处理Microsoft Excel文档时的一些高级功能。Apache POI是一个流行的Java库,它允许程序员创建、修改和显示MS Office格式的文件,...
总之,使用Apache POI生成带文字水印的Excel文件是一项实用的技能,能够帮助Java开发者在处理Excel文档时添加额外的安全层或标识。通过学习和理解提供的代码示例,你可以深入理解如何操作Excel文件,并进一步扩展...
下面是一段简单的代码示例,展示了如何使用Apache POI读取Excel表格: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io...
在Android平台上,将数据写入Excel表格并存储到外部存储是一项常见的需求,特别是在数据分析、报告生成或者用户数据导出的场景下。这个过程涉及到多个关键知识点,包括Android的文件操作、Excel文件格式处理以及可能...
在本案例中,"java POI生成word.zip"是一个压缩包,包含使用Java POI库生成Word文档的示例代码。以下是基于这个主题的相关知识点: 1. **Java POI库介绍** - Java POI 是一套API,用于处理Microsoft Office格式的...
在这里,我们将详细解析这段代码中的知识点,主要包括POI的基本用法、如何在JSP中使用POI生成Excel文件、以及相关的设置和操作。 ### Apache POI的基本用法 Apache POI提供了多种类来处理不同版本的Office文档。...
以下是一个简单的例子,展示了如何使用POI生成一个包含文本和段落的Word文档: ```java import org.apache.poi.xwpf.usermodel.*; public class WordGenerator { public static void main(String[] args) { ...
总的来说,生成Excel文件是一个涉及数据处理、文件操作和编程技术的综合过程。无论选择哪种编程语言,理解数据结构和利用相应的库是关键。在Python中,pandas提供了一流的Excel支持;而在Java中,Apache POI则是一个...
- 创建表格:使用`XWPFTable`类,通过`createTable()`方法创建表格,并通过`addRow()`方法添加行,`createCell()`方法添加单元格。 - 创建列表:使用`XWPFNumbering`和`XWPFFactory`来创建和管理列表样式,然后在...
下面是一段使用Apache POI在Java中创建并导出Excel表格的示例代码: ```java import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf....
数据写入是将列表数据转换成Excel表格的过程,主要包括以下步骤: - 创建`Sheet`对象。 - 设置表头行。 - 循环遍历数据列表,将每条数据写入一个新行。 - 设置单元格样式。 - 如果需要,可以添加自定义公式。 ####...
总结来说,这段代码提供了一种构建Excel数据模型的方式,通过自定义的`DataItem`、`DataRow`和`DataList`类,可以方便地组织和管理Excel表格数据。结合如Apache POI等库,可以将这些数据结构转换为实际的Excel文件。...
在Java开发中,处理和生成Excel表格是一项常见的任务,尤其是在数据导入导出、报表生成以及数据分析等场景。jxls是一个强大的库,它允许开发者利用Java编程来动态地填充Excel模板,从而生成复杂的Excel文件。这个库...
【标题】"poi3.7(excel)"是一个关于使用Apache POI 3.7版本处理Excel文件的知识点。Apache POI是开源项目,专门用于Java应用程序读取和写入Microsoft Office格式的文件,特别是Excel(.xls)和Word(.doc)文档。 ...
在Java web开发中,导出Excel表格是一项常见的需求,例如为了数据分析、报表生成或数据交换。本资源"导出excel表格的jar包.zip"提供了一组必要的库文件,帮助开发者轻松实现这一功能。以下是相关知识点的详细介绍: ...
在Java开发中,有时我们需要将数据导出为Excel表格格式,以便用户可以方便地查看、编辑和打印。Apache POI是一个流行的开源库,专门用于处理Microsoft Office格式的文件,包括Excel(.xlsx和.xls)。本篇文章将深入...