0

我正在构建一个有 8 列的行,并且需要在 apache poi WORD 的单个单元格中创建指数数据(数字)而不使用 para.break 。

没有分页符的第二列指数数据

4

1 回答 1

1

如果内容(2)是上标,那么使用 . 有两种可能Microsoft Word。要么真正上标对齐,要么将文本位置设置为远离文本基线。对于两者都(2)必须在它自己的文本运行中。

使用具有VerticalAlign的XWPFRun.setSubscript可以实现上标对齐。.SUPERSCRIPT

可以使用XWPFRun.setTextPosition设置文本位置,其中int val是测量单位半 pt。

例子:

import java.io.FileOutputStream;

import org.apache.poi.xwpf.usermodel.*;

public class CreateWordSuperScript {

 public static void main(String[] args) throws Exception {

  XWPFDocument document= new XWPFDocument();
  XWPFParagraph paragraph;
  XWPFRun run;

  paragraph = document.createParagraph();
  run = paragraph.createRun();  
  run.setText("6  ");
  run=paragraph.createRun();  
  run.setText("(2)");
  run.setSubscript(VerticalAlign.SUPERSCRIPT); // superscript (2)

  paragraph = document.createParagraph();
  run=paragraph.createRun();  
  run.setText("6  ");
  run=paragraph.createRun();  
  run.setText("(2)");
  run.setTextPosition(11); // (2) position = baseline + 11 half pt ~ 5.5 pt

  FileOutputStream out = new FileOutputStream("word.docx"); 
  document.write(out);
  out.close();
  document.close();
 }
}
于 2019-11-04T14:36:20.827 回答