Необходимо создать экспоненциальные данные (число) в одной ячейке в apache poi без использования параграфа - PullRequest
0 голосов
/ 04 ноября 2019

Я строю строку с 8 столбцами и мне нужно создать экспоненциальные данные (число) в одной ячейке в apache poi WORD без использования para.break.

second column exponential data without pagebreak

1 Ответ

1 голос
/ 04 ноября 2019

Если содержание (2) должно быть верхним, то есть две возможности использования Microsoft Word. Либо действительно выровняйте верхний индекс, либо установите положение текста вдали от базовой строки текста. Для обоих (2) должен быть в своем собственном текстовом прогоне.

Выравнивание надстрочного индекса может быть достигнуто с помощью XWPFRun.setSubscript , имеющего VerticalAlign .SUPERSCRIPT.

Положение текста можно задать с помощью XWPFRun.setTextPosition , где int val - это половина единицы измерения.

Пример:

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();
 }
}
...