Ejemplo n.º 1
0
  /** Test setting the text, then adding multiple paragraphs and retrieve text */
  public void testSetAddMultipleParagraphs() {
    XSSFWorkbook wb = new XSSFWorkbook();
    XSSFSheet sheet = wb.createSheet();
    XSSFDrawing drawing = sheet.createDrawingPatriarch();

    XSSFTextBox shape = drawing.createTextbox(new XSSFClientAnchor(0, 0, 0, 0, 2, 2, 3, 4));

    shape.setText("Line 1");

    XSSFTextParagraph para = shape.addNewTextParagraph();
    para.addNewTextRun().setText("Line 2");

    para = shape.addNewTextParagraph();
    para.addNewTextRun().setText("Line 3");

    List<XSSFTextParagraph> paras = shape.getTextParagraphs();
    assertEquals(
        3,
        paras
            .size()); // this should be 3 as we overwrote the default paragraph with setText, then
                      // added 2 new paragraphs
    assertEquals("Line 1\nLine 2\nLine 3", shape.getText());

    assertNotNull(XSSFTestDataSamples.writeOutAndReadBack(wb));
  }
Ejemplo n.º 2
0
  /** Test addNewTextParagraph */
  public void testAddNewTextParagraph() {
    XSSFWorkbook wb = new XSSFWorkbook();
    XSSFSheet sheet = wb.createSheet();
    XSSFDrawing drawing = sheet.createDrawingPatriarch();

    XSSFTextBox shape = drawing.createTextbox(new XSSFClientAnchor(0, 0, 0, 0, 2, 2, 3, 4));

    XSSFTextParagraph para = shape.addNewTextParagraph();
    para.addNewTextRun().setText("Line 1");

    List<XSSFTextParagraph> paras = shape.getTextParagraphs();
    assertEquals(
        2,
        paras
            .size()); // this should be 2 as XSSFSimpleShape creates a default paragraph (no text),
                      // and then we add a string to that.

    List<XSSFTextRun> runs = para.getTextRuns();
    assertEquals(1, runs.size());
    assertEquals("Line 1", runs.get(0).getText());

    assertNotNull(XSSFTestDataSamples.writeOutAndReadBack(wb));
  }
Ejemplo n.º 3
0
  /** Test adding and reading back paragraphs as bullet points */
  public void testAddBulletParagraphs() {

    XSSFWorkbook wb = new XSSFWorkbook();
    XSSFSheet sheet = wb.createSheet();
    XSSFDrawing drawing = sheet.createDrawingPatriarch();

    XSSFTextBox shape = drawing.createTextbox(new XSSFClientAnchor(0, 0, 0, 0, 2, 2, 10, 20));

    String paraString1 = "A normal paragraph";
    String paraString2 = "First bullet";
    String paraString3 = "Second bullet (level 1)";
    String paraString4 = "Third bullet";
    String paraString5 = "Another normal paragraph";
    String paraString6 = "First numbered bullet";
    String paraString7 = "Second bullet (level 1)";
    String paraString8 = "Third bullet (level 1)";
    String paraString9 = "Fourth bullet (level 1)";
    String paraString10 = "Fifth Bullet";

    XSSFTextParagraph para = shape.addNewTextParagraph(paraString1);
    para = shape.addNewTextParagraph(paraString2);
    para.setBullet(true);

    para = shape.addNewTextParagraph(paraString3);
    para.setBullet(true);
    para.setLevel(1);

    para = shape.addNewTextParagraph(paraString4);
    para.setBullet(true);

    para = shape.addNewTextParagraph(paraString5);
    para = shape.addNewTextParagraph(paraString6);
    para.setBullet(ListAutoNumber.ARABIC_PERIOD);

    para = shape.addNewTextParagraph(paraString7);
    para.setBullet(ListAutoNumber.ARABIC_PERIOD, 3);
    para.setLevel(1);

    para = shape.addNewTextParagraph(paraString8);
    para.setBullet(ListAutoNumber.ARABIC_PERIOD, 3);
    para.setLevel(1);

    para = shape.addNewTextParagraph("");
    para.setBullet(ListAutoNumber.ARABIC_PERIOD, 3);
    para.setLevel(1);

    para = shape.addNewTextParagraph(paraString9);
    para.setBullet(ListAutoNumber.ARABIC_PERIOD, 3);
    para.setLevel(1);

    para = shape.addNewTextParagraph(paraString10);
    para.setBullet(ListAutoNumber.ARABIC_PERIOD);

    // Save and re-load it
    wb = XSSFTestDataSamples.writeOutAndReadBack(wb);
    sheet = wb.getSheetAt(0);

    // Check
    drawing = sheet.createDrawingPatriarch();

    List<XSSFShape> shapes = drawing.getShapes();
    assertEquals(1, shapes.size());
    assertTrue(shapes.get(0) instanceof XSSFSimpleShape);

    XSSFSimpleShape sshape = (XSSFSimpleShape) shapes.get(0);

    List<XSSFTextParagraph> paras = sshape.getTextParagraphs();
    assertEquals(
        12,
        paras
            .size()); // this should be 12 as XSSFSimpleShape creates a default paragraph (no text),
                      // and then we added to that

    StringBuilder builder = new StringBuilder();

    builder.append(paraString1);
    builder.append("\n");
    builder.append("\u2022 ");
    builder.append(paraString2);
    builder.append("\n");
    builder.append("\t\u2022 ");
    builder.append(paraString3);
    builder.append("\n");
    builder.append("\u2022 ");
    builder.append(paraString4);
    builder.append("\n");
    builder.append(paraString5);
    builder.append("\n");
    builder.append("1. ");
    builder.append(paraString6);
    builder.append("\n");
    builder.append("\t3. ");
    builder.append(paraString7);
    builder.append("\n");
    builder.append("\t4. ");
    builder.append(paraString8);
    builder.append("\n");
    builder.append("\t"); // should be empty
    builder.append("\n");
    builder.append("\t5. ");
    builder.append(paraString9);
    builder.append("\n");
    builder.append("2. ");
    builder.append(paraString10);

    assertEquals(builder.toString(), sshape.getText());

    assertNotNull(XSSFTestDataSamples.writeOutAndReadBack(wb));
  }
Ejemplo n.º 4
0
  /** Test addNewTextParagraph using RichTextString */
  public void testAddNewTextParagraphWithRTS() {
    XSSFWorkbook wb = new XSSFWorkbook();
    XSSFSheet sheet = wb.createSheet();
    XSSFDrawing drawing = sheet.createDrawingPatriarch();

    XSSFTextBox shape = drawing.createTextbox(new XSSFClientAnchor(0, 0, 0, 0, 2, 2, 3, 4));
    XSSFRichTextString rt = new XSSFRichTextString("Test Rich Text String");

    XSSFFont font = wb.createFont();
    font.setColor(new XSSFColor(new Color(0, 255, 255)));
    font.setFontName("Arial");
    rt.applyFont(font);

    XSSFFont midfont = wb.createFont();
    midfont.setColor(new XSSFColor(new Color(0, 255, 0)));
    rt.applyFont(5, 14, midfont); // set the text "Rich Text" to be green and the default font

    XSSFTextParagraph para = shape.addNewTextParagraph(rt);

    // Save and re-load it
    wb = XSSFTestDataSamples.writeOutAndReadBack(wb);
    sheet = wb.getSheetAt(0);

    // Check
    drawing = sheet.createDrawingPatriarch();

    List<XSSFShape> shapes = drawing.getShapes();
    assertEquals(1, shapes.size());
    assertTrue(shapes.get(0) instanceof XSSFSimpleShape);

    XSSFSimpleShape sshape = (XSSFSimpleShape) shapes.get(0);

    List<XSSFTextParagraph> paras = sshape.getTextParagraphs();
    assertEquals(
        2,
        paras
            .size()); // this should be 2 as XSSFSimpleShape creates a default paragraph (no text),
                      // and then we add a string to that.

    List<XSSFTextRun> runs = para.getTextRuns();
    assertEquals(3, runs.size());

    // first run properties
    assertEquals("Test ", runs.get(0).getText());
    assertEquals("Arial", runs.get(0).getFontFamily());

    Color clr = runs.get(0).getFontColor();
    assertArrayEquals(
        new int[] {0, 255, 255}, new int[] {clr.getRed(), clr.getGreen(), clr.getBlue()});

    // second run properties
    assertEquals("Rich Text", runs.get(1).getText());
    assertEquals(XSSFFont.DEFAULT_FONT_NAME, runs.get(1).getFontFamily());

    clr = runs.get(1).getFontColor();
    assertArrayEquals(
        new int[] {0, 255, 0}, new int[] {clr.getRed(), clr.getGreen(), clr.getBlue()});

    // third run properties
    assertEquals(" String", runs.get(2).getText());
    assertEquals("Arial", runs.get(2).getFontFamily());
    clr = runs.get(2).getFontColor();
    assertArrayEquals(
        new int[] {0, 255, 255}, new int[] {clr.getRed(), clr.getGreen(), clr.getBlue()});

    assertNotNull(XSSFTestDataSamples.writeOutAndReadBack(wb));
  }