Android JWord生成复杂表格(单元格合并)

本文讲述了在Android项目中如何利用JWord库生成复杂的表格,特别是涉及单元格合并的情况。内容包括根据需求创建动态显示的表格,如木材材积计算的展示,以及在产品经理的要求下,将原本横向布局的表格改为竖向布局的过程。最终展示了生成的表格效果,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

最近项目中维护升级,新增加了个列表展示的CRUD功能,简单给大家描述下:木材的砍伐来计算不同树种的材积值(也就是总体积)进行数据展示。

大体是这样的表格显示(还有几个更简单的表格不在此列出),其中中间g1-gn是根据添加页面设置的组别数进行动态显示的,如果当前有8组中央段面积,那么就是g1-g8,如果有两组数据(这里是数据2组,不是中央段面积2组)其中一条数据的中央段面积有2组,另一条有6组,那么这里就会显示G1-G8,而第一组数据只会在G1,G2时候有值,其他为空内容。

简单介绍了下需求,好了真正的需求来了,要求导出这个表格到word,并使用Jword。起初我我是以这个设计图的设计表格导出的,在写这个表格前,我再三跟产品经理确认是否要这样做,告诉了他这样会导致g1-gn如果很多就会换行或者不显示的问题(前提是A4纸张大小边距固定参数,字体大小都是固定好的大小),没办法比较人家是爷,人家说就这么做。呵呵,做好后给他看他却说这样还是不好看要我竖着放,没办法,又从新改了。

我先给大家看下成品效果 (第一张是三条数据的,第二三张是6条数据的)

  • 不废话了直接上代码
  •     private void setCenterTable(int maxTableWidth, String[] header, int[] tableNewWidth, CenterWoodWordEntity centerWoodWordEntity, int maxWidth, List<String> titles2, int count) {
            {
                //先设置前三行 格式固定
                Table table = new Table(StandardBorderStyle.SINGLE_LINE);
                table.setAlignment(HorizontalAlignmentType.CENTER);
                int fristIndex = count * 5;
                for (int i = 0; i < 3; i++) {//前三行
                    Row row = new Row();
                    row.setHeight(new RowHeight(HeightRule.NONE, mRowHeight));
    //                for (int j = 0; j < maxTableWidth - 1; j++) {//横向最大值
    
                    for (int j = count * 5; j < count * 5 + 5; j++) {//横向最大值
                        if (j == fristIndex) {
                            Run run = new Run(header[i]);
                            run.setStyleName("tabtextname_min");
                            run.setTextScale(78);
                            Paragraph paragraph = new Paragraph();
                            paragraph.setHorizontalTextAlignment(HorizontalAlignmentType.CENTER);
                            paragraph.add(run);
         
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值