我有一个表格的word文档。我想使用Java在这些单元格中插入文本,并且我已经将Apache POI添加到我的项目中。
然而,我只是成功地阅读了文件。我的应用程序获取表中的所有单元格。但我不知道如何在每个单元格中插入新文本?有什么想法吗?
String SOURCE_FILE = "template.doc";
DocumentProcessor instance = new DocumentProcessor();
HWPFDocument doc = null;
try {
doc = instance.openDocument(SOURCE_FILE);
Range range = doc.getRange();
TableIterator itr = new TableIterator(range);
while(itr.hasNext()) {
Table table = itr.next();
for (int rowIndex = 0; rowIndex < table.numRows(); rowIndex++) {
TableRow row = table.getRow(rowIndex);
for (int colIndex = 0; colIndex < row.numCells(); colIndex++) {
TableCell cell = row.getCell(colIndex);
cell.getParagraph(0).text().replace("", "Hello");
System.out.println(cell.getParagraph(0).text());
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
saveDocument(doc, SOURCE_FILE);
}
}
private HWPFDocument openDocument(String file) throws Exception {
URL res = getClass().getClassLoader().getResource(file);
HWPFDocument document = null;
if (res != null) {
document = new HWPFDocument(new POIFSFileSystem(
new File(res.getPath())));
}
return document;
}
private static void saveDocument(HWPFDocument doc, String file) {
try (FileOutputStream out = new FileOutputStream(file)) {
doc.write(out);
doc.close();
System.out.println("File saved");
} catch (IOException e) {
e.printStackTrace();
}
}
public class TableCreate{
public static void main(String[] args)throws Exception {
//Blank Document
XWPFDocument document= new XWPFDocument();
//Write the Document in file system
FileOutputStream out = new FileOutputStream(
new File("create_table.docx"));
//create table
XWPFTable table = document.createTable();
//create first row
XWPFTableRow tableRowOne = table.getRow(0);
tableRowOne.getCell(0).setText("col one, row one");
tableRowOne.addNewTableCell().setText("col two, row one");
tableRowOne.addNewTableCell().setText("col three, row one");
//create second row
XWPFTableRow tableRowTwo = table.createRow();
tableRowTwo.getCell(0).setText("col one, row two");
tableRowTwo.getCell(1).setText("col two, row two");
tableRowTwo.getCell(2).setText("col three, row two");
//create third row
XWPFTableRow tableRowThree = table.createRow();
tableRowThree.getCell(0).setText("col one, row three");
tableRowThree.getCell(1).setText("col two, row three");
tableRowThree.getCell(2).setText("col three, row three");
document.write(out);
out.close();
System.out.println("create_table.docx written successully");
}
}
输出
问题内容: 有人可以指出我正确的方向,以便在Java中写入Excel文件吗?我不了解我在网上找到的链接。您能给我发送链接还是我可以遵循的任何方式? 谢谢J 问题答案: 并不是平庸,但是Apache POI可以做到。您可以在此处找到一些代码示例: http //poi.apache.org/spreadsheet/examples.html
问题内容: 嗨,我正在尝试将字符串写入文本文件,但是有一个小问题。我在该站点上其他问题的帮助下完成了代码,但是当我尝试向文本文件中添加字符串时,它将擦除该文本文件中的所有内容并写入输入。但我希望它转到下一行并编写。我无法解决。我将不胜感激任何帮助。谢谢.. 问题答案: (未试用)您是否尝试过JavaDoc中提到的方法?
问题内容: 我正在尝试根据从《 AI游戏程序员的技术》一书中选取的技术编写一种遗传算法,该技术对种群的基因使用二进制编码和适应性比例选择(也称为轮盘选择)。在程序内以二维数组随机生成。 最近,我遇到了一段伪代码并尝试实现它,但是遇到了一些我需要做的事情方面的问题。我检查了许多书籍和一些开源代码,但仍在努力取得进展。我了解我必须获得总体适应度的总和,在总和与零之间选择一个随机数,然后如果该数字大于父
问题内容: Sun 用什么语言写? 问题答案: Sun实际上有多个JVM。所述热点JVM在C ++主要被写,因为热点在很大程度上基于所述Animorphic Smalltalk的VM被用C ++编写 。 比HotSpot更有趣的是IMHO Maxine Research VM ,它几乎完全用Java编写。
问题内容: 我尝试了以下代码来完成读取和写入tiff图像的任务: 但是,当我运行代码时,出现以下错误消息: 知道如何解决这个问题吗? 问题答案: 读取TIFF并输出BMP的最简单方法是使用ImageIO类: 要使此功能正常工作,您唯一需要做的另一件事是确保已将JAI ImageIO JAR添加到类路径中,因为如果没有此库中的插件,JRE不会处理BMP和TIFF。 如果由于某种原因不能使用JAI I
问题内容: 我简要阅读了有关Maxine的信息,这是一个用Java编写的开源JVM实现。这对我来说听起来很圆。如果java要求运行虚拟机,那么如何用Java编写虚拟机本身(VM代码是否需要运行VM的虚拟机,依此类推?)。 编辑 :好的,所以我看到我忽略了Java不必在VM中运行的事实。那如何解释如何用LISP编写LISP编译器呢?还是这完全是一个新问题? 问题答案: 最初,您认为Java需要虚拟机
问题内容: 我正在处理以下代码: 它给出以下输出: 现在,我想将生成的输出()写入硬盘上的XML文件。我该怎么做? 问题答案: 使用(或)代替构造您的。
问题内容: 我想创建一个.pdf文件,然后用彩色写入。通过控制台,我已经能够使用ansi转义序列做到这一点。例如,如果我想红,我把”\u001b[31m”我的字符串的前面,”\u001b[0m”以删除所有格式。您可以更改背景和前景。我为此设计了自己的有用的类,以帮助显示信息,甚至还用于我仍在从事的基于文本的国际象棋项目。 但是,现在我想用彩色写入文件。我想做与ansi转义类似的事情,但可能不会。