当前位置: 首页 > 知识库问答 >
问题:

更改Apache POI中单元格注释的大小

戴原
2023-03-14

我使用以下java代码在Apache POI中成功生成单元格注释

public static void setComment(String text, Cell cell) {
            final Map<Sheet, HSSFPatriarch> drawingPatriarches = new HashMap<Sheet, HSSFPatriarch>();

            CreationHelper createHelper = cell.getSheet().getWorkbook().getCreationHelper();
            HSSFSheet sheet = (HSSFSheet) cell.getSheet();
            HSSFPatriarch drawingPatriarch = drawingPatriarches.get(sheet);
            if (drawingPatriarch == null) {
                drawingPatriarch = sheet.createDrawingPatriarch();
                drawingPatriarches.put(sheet, drawingPatriarch);
            }

            Comment comment = drawingPatriarch.createComment(new HSSFClientAnchor(100, 100, 100, 100, (short)1, 1, (short) 10, 5));
            comment.setString(createHelper.createRichTextString(text));
            cell.setCellComment(comment);
        }

我从apache poi中使用HSSFClientAnchor创建单元格注释中复制了它。谢谢你,埃里克!

如何将评论的大小更改为300像素宽和100像素高?

谢啦!

共有3个答案

那开济
2023-03-14

您可以为任何单元格分配列宽,如下所示:

sheet.setColumnWidth(0, 1000);
陈宏胜
2023-03-14

《繁忙开发人员HSSF和XSSF功能指南》

// When the comment box is visible, have it show in a 1x3 space
ClientAnchor anchor = factory.createClientAnchor();
anchor.setCol1(cell.getColumnIndex());
anchor.setCol2(cell.getColumnIndex()+1);
anchor.setRow1(row.getRowNum());
anchor.setRow2(row.getRowNum()+3);

只需更改setCol2和setRow2的值。

邹慈
2023-03-14

据我所知,这不是一个简单的方法,因为注释锚点由单元格(列、行参数)指定,并偏移到单元格(dx、dy参数)中。因此,您需要计算单元格的宽度/高度以计算第二个单元格坐标,然后计算该单元格的偏移量以使其完全符合您想要的像素大小。

 类似资料:
  • 我正在使用Apache POI读取零件编号电子表格中的数据。我在我们的数据库中查找零件编号,如果我们有零件的计算机辅助设计图纸,我将零件编号单元格涂成绿色,如果没有,我将其涂成红色。处理完成后,将保存电子表格。我遇到的问题是那列中的每个细胞都是绿色的。我已经完成了代码,查找零件号的逻辑工作正常,确定单元格应该是什么颜色以及设置颜色和填充的逻辑似乎也工作正常。知道我做错了什么吗? 谢谢

  • 我做了一个PHP脚本,使用api v4将一些信息导出到谷歌电子表格。当我尝试向单元格中添加注释时,我应该为每个注释向API发出请求,这对我来说是一个问题,前面已经解释过了。 我目前的方法是以下一种,我试图在单行的每一列上添加注释($HeaderNotes是一个数组): 在这种方法中,注释是一个接一个地添加的(使用循环),并且工作正常。主要的问题是,我做的请求和notes一样多,而谷歌的Cuota有

  • 我有一个jtable保存账本文件记录并将它们发送出去。

  • 我需要一个表格,第一行和第二行的单元格合并在一起。 大概是这样的: 桌子的图片(我不能张贴图片)http://i.stack.imgur.com/dAO6j.png 我一直在复习与本主题相关的所有问题,并找到了一些将网格跨度应用于单元的答案,但我找不到真正的解决方案。 以下是我从谷歌和本网站获得的示例代码: 我从这段代码中得到的信息如下: 我试图用

  • 问题内容: 我有一个由用户创建的单元格调用的表视图。每个单元都有文本视图。我想通过“文本视图”的内容更改单元格的高度。这是我尝试的: 问题答案: 绑定您与来自四面八方的使用边际约束。( 前置,顶部和底部的约束 ) 禁用textView滚动 在 viewDidLoad()中 添加以下内容。 这将使您的单元格大小根据您的textview内容大小。 看一下结果: 您无需编写 heightForRowAt

  • 问题内容: 我想制作一个可编辑的表,然后检查数据以确保其有效。我不确定如何仅更改一个单元格的颜色。我想要一个单元格,例如(0,0)并将前景颜色设置为红色。我已经阅读了SO和Oracle上有关自定义ColorRenderer的其他文章,但是我不知道如何使用它。 谢谢。 问题答案: 假设您要用其他颜色渲染的单元格代表一种状态(我将以“拒绝并批准”为例)。然后,我将在我的表模型中实现一个名为getSta