`
hanahmilyNan
  • 浏览: 34094 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

POI根据数据进行合并

阅读更多
//
public HSSFWorkbook createExcel(List list) throws SysException {

        HSSFWorkbook wb = new HSSFWorkbook();
        HSSFSheet sheet = wb.createSheet("Sheet1");
        ExcelUtil util = new ExcelUtil(wb);
        HSSFRow row = sheet.createRow(0);

        /* group相关信息 */
        util.setCellValue(row, (short) 0, "亲情组名称", util.getTableHeadStyle());
        util.setCellValue(row, (short) 1, "亲情组类型", util.getTableHeadStyle());
        util.setCellValue(row, (short) 2, "费率", util.getTableHeadStyle());
        util.setCellValue(row, (short) 3, "亲情组最大成员数目", util.getTableHeadStyle());
        util.setCellValue(row, (short) 4, "亲情主号码", util.getTableHeadStyle());
        util.setCellValue(row, (short) 5, "本地网", util.getTableHeadStyle());
        util.setCellValue(row, (short) 6, "服务区", util.getTableHeadStyle());
        util.setCellValue(row, (short) 7, "操作员工", util.getTableHeadStyle());
        util.setCellValue(row, (short) 8, "操作员工号", util.getTableHeadStyle());

        /* 成员相关信息 */
        util.setCellValue(row, (short) 9, "亲情成员号码", util.getTableHeadStyle());
        util.setCellValue(row, (short) 10, "号码类型", util.getTableHeadStyle());
        util.setCellValue(row, (short) 11, "创建时间", util.getTableHeadStyle());
        util.setCellValue(row, (short) 12, "号码所属本地网", util.getTableHeadStyle());
        util.setCellValue(row, (short) 13, "号码操作员工", util.getTableHeadStyle());
        util.setCellValue(row, (short) 14, "号码操作员工号", util.getTableHeadStyle());
        // *用于标识当前写入的行号 */
        int currentRow = 0;

        // *需要合并的开始行号*/
        int beginRow = 0;
        for (int i = 0; i < list.size(); i++) {
            TdGroupVO groupVO = (TdGroupVO) list.get(i);
            beginRow = ++currentRow;
            row = sheet.createRow(beginRow);
            util.setCellValue(row, (short) 0, groupVO.getGroupName(), util.getStringStyle());
            util.setCellValue(row, (short) 1, groupVO.getGroupType(), util.getStringStyle());
            util.setCellValue(row, (short) 2, groupVO.getPrefRateName(), util.getStringStyle());
            util.setCellValue(row, (short) 3, groupVO.getGroupNumber(), util.getIntegerStyle());
            util.setCellValue(row, (short) 4, groupVO.getAccNbr(), util.getStringStyle());
            util.setCellValue(row, (short) 5, groupVO.getLocalNetName(), util.getStringStyle());
            util.setCellValue(row, (short) 6, groupVO.getAreaName(), util.getStringStyle());
            util.setCellValue(row, (short) 7, groupVO.getName(), util.getStringStyle());
            util.setCellValue(row, (short) 8, groupVO.getSysUserName(), util.getStringStyle());

            List memberList = GroupDelegate.getInstance().queryGroupMemberByGroupId(
                    groupVO.getGroupId().toString(),
                    Long.valueOf(groupVO.getLocalNetId()).intValue());
            for (int j = 0; j < memberList.size(); j++) {
		//用于合并单元格的样式初始化
                if (j != 0) {
                    util.setCellValue(row, (short) 0, "", util.getStringStyle());
                    util.setCellValue(row, (short) 1, "", util.getStringStyle());
                    util.setCellValue(row, (short) 2, "", util.getStringStyle());
                    util.setCellValue(row, (short) 3, "", util.getStringStyle());
                    util.setCellValue(row, (short) 4, "", util.getStringStyle());
                    util.setCellValue(row, (short) 5, "", util.getStringStyle());
                    util.setCellValue(row, (short) 6, "", util.getStringStyle());
                    util.setCellValue(row, (short) 7, "", util.getStringStyle());
                    util.setCellValue(row, (short) 8, "", util.getStringStyle());
                }
                TdGroupMemberVO memberVO = (TdGroupMemberVO) memberList.get(j);
                util.setCellValue(row, (short) 9, memberVO.getAccNbr(), util.getIntegerStyle());
                if (j == 0) {
                    util.setCellValue(row, (short) 10, "组号码", util.getStringStyle());
                } else {
                    util.setCellValue(row, (short) 10, "成员号码", util.getStringStyle());
                }

                util.setCellValue(row, (short) 11, memberVO.getStsDate().toString(), util
                        .getStringStyle());
                util.setCellValue(row, (short) 12, memberVO.getLocalNetName(), util
                        .getStringStyle());
                util.setCellValue(row, (short) 13, memberVO.getName(), util.getStringStyle());
                util
                        .setCellValue(row, (short) 14, memberVO.getSysUserName(), util
                                .getStringStyle());

                row = sheet.createRow(++currentRow);// add a new row

            }
            
	    //合并单元格
            for (int j = 0; j < 9; j++) {
                sheet.addMergedRegion(new Region(beginRow, (short) j, currentRow, (short) j));
            }

        }
        return wb;
    }

 

其中ExcelUtil 是一个工具类,用来处理excel的样式问题,这种方式是处理一对多关系同时导出到一个excel的方法。

 

0
0
分享到:
评论

相关推荐

    poi获取exccel有合并单元格的数据

    ### 使用Apache POI获取含有合并单元格的Excel数据并存储为List 在处理Excel文档时,经常需要读取其中的数据并进行进一步的操作。当Excel文件中含有合并单元格时,简单的读取方法可能无法准确地获取到所有数据。...

    poi获取合并单元格

    2. **数据分析**:当从 Excel 文件中读取数据进行分析时,确保能够正确识别和处理合并单元格可以帮助避免数据错误。 3. **自动化测试**:在进行 UI 自动化测试时,可能需要验证页面上的表格是否正确显示了 Excel ...

    poi实现多sheet合并

    在IT行业中,尤其是在数据分析、报表处理等领域,经常需要对Excel文件进行操作,比如合并多个Excel文件或多个Sheet。Apache POI是一个流行的Java库,它允许开发者读取、创建和修改Microsoft Office格式的文件,包括...

    POI合并多个相同的Excel或者合并Word文件

    当有多个相同格式的Excel文件需要合并时,我们可以遍历每个文件中的工作表,然后将所有数据合并到一个新的Excel文件中。这个过程涉及到的关键POI类包括`HSSFWorkbook`(用于处理.xls文件)和`XSSFWorkbook`(用于...

    POI-TL合并多个Word文档

    标题 "POI-TL合并多个Word文档" 涉及到的是使用Apache POI和POI-TL库在Java环境中合并多个Word文档的技术。Apache POI是一个流行的开源库,允许开发者处理Microsoft Office格式的文件,如Word、Excel和PowerPoint。...

    POI读取Excel合并单元格并储存

    在处理合并单元格时,你需要确定合并的范围,并将所有相关单元格的数据合并到一个值中。例如,如果"姓名"列的某一行合并了3个单元格,那么你可以获取第一个单元格的值作为完整的姓名。注意,当处理合并单元格时,...

    poi生成Excel及合并单元格示例

    在本示例中,我们将重点讨论如何使用 Apache POI 来生成 Excel 文件,并进行单元格的合并操作。 首先,我们需要引入 Apache POI 的相关依赖库。如果你使用的是 Maven,可以在项目的 `pom.xml` 文件中添加以下依赖:...

    利用poi进行excel相同内容合并单元格并转成流输出

    利用poi进行excel相同内容合并单元格,只摘要了传入部分功能,请关注addMergedRegion方法

    poi生成excel报表合并列

    在这个场景中,我们关注的是如何使用POI来生成具有合并列的Excel报表。生成这样的报表时,通常是为了呈现层次化的数据,例如组织结构、产品分类或者地区分层等。下面将详细介绍如何利用Apache POI实现这一功能。 ...

    poi读取合并单元格帮助类

    在探讨“poi读取合并单元格帮助类”的知识点时,我们首先需要理解Apache POI库在Java中的作用以及如何处理Excel文件中的合并单元格。Apache POI是一个开源的API,它允许程序创建、修改和显示Microsoft Office格式的...

    java运用poi填充word数据并将多个word合并为一个

    通过上述步骤,开发者可以有效地利用Apache POI库在Java中对Word文档进行数据填充和文件合并,提高工作效率,减少手动操作带来的错误。在实践中,可能还需要考虑性能优化、异常处理等细节问题,以确保程序的稳定性...

    java excel poi合并单元格

    在Java中使用Apache POI进行操作,我们需要使用`XSSFWorkbook`(对于.xlsx文件)或`HSSFWorkbook`(对于.xls文件)类来创建和处理工作簿,`XSFSheet`或`HSSFSheet`类来操作工作表,以及`XSSFCell`或`HSSFCell`类来...

    利用POI合并多个Excel表

    本教程将深入探讨如何利用Apache POI库来合并多个Excel工作表,这对于处理大量数据或者整合来自不同来源的数据时非常有用。 首先,我们需要了解Apache POI的基本概念。POI提供了HSSF(Horrible Spreadsheet Format...

    poi操作表格

    描述提到“Android可以操作简单的表格,进行合并单元格等操作”,这表明Apache POI的功能已经扩展到Android平台,使得Android应用也能处理Excel数据,如合并单元格,这是在创建或编辑表格时常见的需求。在Android...

    全国POI数据

    全国POI数据是地理信息系统(GIS)中的一个重要概念,POI是Point of Interest的缩写,直译为“兴趣点”。这些数据包含了全国各地特定地点的详细信息,如名称、地址、坐标、类别等,通常用于地图服务、导航系统、商业...

    geopandas_之三POI合并区县市配套数据

    现在,我们可以将POI数据与区县市数据进行空间或属性上的合并。比如,我们可以计算每个区域内的POI数量: ```python # 如果区县市数据有名为'NAME'的列,可以这样合并 merged_data = city_data.merge(gdf_poi, how=...

    java poi 填充word(合并单元格,添加图片,设置字号)(csdn)————程序.pdf

    总结来说,这段代码展示了如何使用Java POI库创建一个动态Word文档生成器,它能够根据查询结果填充数据,合并单元格,调整文本样式,以及插入图片。这个功能对于生成报告、证书或任何需要自定义文本和图像的文档非常...

    POI单元格的合并、数据行的分组以及Excel窗口的冻结.doc

    POI提供了`CellRangeAddress`类来定义合并的范围,并通过`Sheet`对象的`mergeCells`方法进行合并。例如,如果你想合并从A1到B1的两个单元格,你可以创建一个`CellRangeAddress`实例,然后调用`sheet.mergeCells(cell...

    关于java EXCEL poi 合并后无法显示或无法设置边框问题

    关于java EXCEL poi 合并后无法显示或无法设置边框问题 【本人亲测】 excel poi 新手! 坑了1.5天!

    2020年深圳市POI数据集.zip

    深圳市2020年POI数据集是一个包含丰富的地理信息资源的压缩文件,主要用于地理信息系统(GIS)的应用和分析。这个数据集包含了多种类型的数据,如poi矢量shp数据、dem数据以及行政区划数据,这些都对于研究深圳城市...

Global site tag (gtag.js) - Google Analytics