【问题标题】:Apache POI textbox looks different from excel textboxApache POI 文本框看起来与 excel 文本框不同
【发布时间】:2022-01-07 03:37:09
【问题描述】:

我想制作一个类似于上图右侧的文本框。 我尝试按照文档编写以下代码。

public void TestXSSFPatriarch(String fileName, String richText) {
    Workbook workbook = new XSSFWorkbook();
    Sheet sheet = workbook.createSheet("hssf");
    XSSFDrawing xssfDrawing = (XSSFDrawing) sheet.createDrawingPatriarch();
    XSSFTextBox xssfTextBox = xssfDrawing.createTextbox(
            new XSSFClientAnchor(0, 0, 25, 50, (short) 0, 0, (short) 25, 50));
    xssfTextBox.setText(new XSSFRichTextString(richText));

    try (OutputStream fileOut = new FileOutputStream(fileName)) {
        workbook.write(fileOut);
        System.out.println("Success");
    } catch (IOException e) {
        e.printStackTrace();
    }
}

以上代码输出上图左侧显示的文本框。 对此的任何帮助将不胜感激。

【问题讨论】:

    标签: java textbox apache-poi richtextbox


    【解决方案1】:

    在尝试了 XSSFTextBox 提供的不同方法之后。我找到了一个名为setFillColor的选项

    public void TestXSSFPatriarch(String fileName, String richText) {
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("hssf");
        XSSFDrawing xssfDrawing = (XSSFDrawing) sheet.createDrawingPatriarch();
        XSSFTextBox xssfTextBox = xssfDrawing.createTextbox(
                new XSSFClientAnchor(0, 0, 25, 50, (short) 0, 0, (short) 25, 50));
        xssfTextBox.setText(new XSSFRichTextString(richText));
    
        xssfTextBox.setFillColor(255, 255, 255); // Adding the following line solved the problem
        
        try (OutputStream fileOut = new FileOutputStream(fileName)) {
            workbook.write(fileOut);
            System.out.println("Success");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多