需要在 apache poi 的单个单元格中创建指数数据(数字)而不使用 paragraph.break
Need to create exponential data(number) in single cell in apache poi without using paragraph.break
我正在构建一个包含 8 列的行,并且
需要在 apache poi WORD 的单个单元格中创建指数数据(数字)而不使用 paragraph.break .
如果内容(2)
需要上标,那么使用Microsoft Word
有两种可能。要么真的上标对齐,要么将文本位置设置为远离文本基线。因为 (2)
必须在它自己的文本中 运行.
可以使用XWPFRun.setSubscript having 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();
}
}
我正在构建一个包含 8 列的行,并且 需要在 apache poi WORD 的单个单元格中创建指数数据(数字)而不使用 paragraph.break .
如果内容(2)
需要上标,那么使用Microsoft Word
有两种可能。要么真的上标对齐,要么将文本位置设置为远离文本基线。因为 (2)
必须在它自己的文本中 运行.
可以使用XWPFRun.setSubscript having 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();
}
}