Apache POI字,如何从表格单元格的开头删除空白区域(新行)?

时间:2016-06-16 22:13:08

标签: ms-word apache-poi

我只能使用paragraph元素来设置表格单元格的内容,以更改文本的颜色。 当我在表格中创建一个段落时,它会创建一个新行。对于我的项目,我需要这些单元格尽可能小,因为我正在使用

   tr.setHeight(300);
   tr.getCtRow().getTrPr().getTrHeightArray(0).setHRule(STHeightRule.EXACT);

在没有空行时有效。

以下代码是问题

    XWPFTable tb = document.createTable(2,2);
    XWPFParagraph p1 =  tb.getRow(0).getCell(0).addParagraph();
    XWPFRun p1run = p1.createRun();
    p1run.setText("why is there a space");
    XWPFParagraph p2 =  tb.getRow(1).getCell(1).addParagraph();
    XWPFRun p2run = p2.createRun();
    p2run.setText("still there ");

这会创建此输出

http://i.stack.imgur.com/bSONW.png

2 个答案:

答案 0 :(得分:1)

我在这里找到了解决方案.. Duplicate Table Paragraphs in Docx created with Apache POI

似乎您添加了一个段落,然后使用此代码删除原始文件:

const search = R.invoker(1, 'search');
const substring = R.invoker(2, 'substring');
const twice = f => d => f(d)(d);
const lSplit = pat => twice(R.compose(substring(0), search(pat)));

lSplit(/ /)('foo bar');

答案 1 :(得分:0)

在单元格中添加段落清除文本之前,对我有用

$date = Carbon::createFromFormat('Y.m.d', $user->premiumDate);
$daysToAdd = 5;
$date = $date->addDays($daysToAdd);
dd($date);