前言
本教程演示如何向Word文本框添加表单,以及如何导入和删除文本框中已存在的表单。Free S for Java是用于此代码演示的控件。免费的专业Java Word组件,使开发人员能够在Java应用程序中轻松地创建、编辑、阅读、转换和打印Word文档。此外,作为完全独立的组件,您不需要在生产环境中安装Microsoft Office。
测试环境
在运行代码之前,必须将Free S for Java软件包中的S.jar导入IDEA。导入的方法有两种。首先,您可以在IDEA中创建Maven项目,在文件中输入以下代码,然后单击“更改导入”。
Repositories
存储库(repository)
Idcom.e-iceblue/id
Url/url
/存储库
/repositories
Dependencies
Dependency
GroupIde-iceblue/groupId
工件id;/工件id
版本3.9.0/版本
/dependency
/dependencies第二,从E-iceblue中文主页下载并解压缩软件包后,手动将lib文件夹下的S.jar导入IDEA。
代码示例
示例1向Word文本框添加表单
向文本框中添加表时,Free S for Java支持表大小、位置设置和单元格合并、表背景色设置、表字体大小和颜色等表样式操作。
Import com.*;
Import com.文档。*;
import com . fields . textbox;
import com . fields . textrange;
import Java . awt . *;
Public class AddTable {
public static void main(string[]args){
//创建文档
Document doc=new Document();
//添加指定大小的文本框
Textboxtb=doc.addsection()。addparagraph()。appendtextbox (380,100);
//设置文本框的相对位置
()。SETHORIZONTALORIGIN);
()。setHorizontalPosition(120 f);
()。setVerticalOrigin);
()。setVerticalPosition(50f);
//设置文本框边框样式
()。setline style);
()。setline color);
//声明数组内容
String[][] data=new String[][]{
New String[]{'Country List'}、
New string [] {'name ',' capital ',' continent ',' area'},
New string [] {'China ',' Beijing ',' Eastasia ',' 960000 ' },
New string [] {'Mexican ',' Mexico city ',' north America ',' 1964375'},
}
//添加表格
Table table=()。add table();
//表行,指定列数
(4,4);
//在表中填充数组内容
for(int I=0;I daI) {
TableRow dataRow=()。get(I);
Da()。get(i)。setWidth(70);
DA(22);
DaType);
for(int j=0;J data[i]。lengthJ) {
Da()。get(j)。getCellFormat(
).setVerticalAlignmen); TextRange range2 = da().get(j).addParagraph().appendText(data[i][j]); range2.getCharacterFormat().setFontName("Calibri"); range2.getCharacterFormat().setFontSize(11f); range2.getOwnerParagraph().getFormat().setHorizontalAlignmen); range2.getCharacterFormat().setBold(true); } } //设置指定行的背景色 TableRow row = ().get(1); for (int z = 0; z < row.getCells().getCount(); z++) { row.getCells().get(z).getCellFormat().setBackColor(new Color(176,224,238)); } //横向合并单元格 (0,0,3); //应用表格样式 ); //保存文档 doc.saveToFile("outpu;, FileFormat.Docx_2013); } }添加效果:
示例2 获取文本框中的表格信息
import com..*;
import com..documents.*;
import com..fields.*;
import java.io.*;
public class ReadTable {
public static void main(String[] args) throws IOException {
//加载示例文档
Document doc = new Document();
doc.loadFromFile("C:\\Users\\Test1\\Desktop\\Te;);
//获取第一个文本框
TextBox textbox = doc.getTextBoxes().get(0);
//获取文本框中第一个表格
Table table = ().getTables().get(0);
//保存文本
String output = "outpu;;
File file = new File(output);
if (!()) {
();
}
();
FileWriter fw = new FileWriter(file, true);
BufferedWriter bw = new BufferedWriter(fw);
//遍历表格中的段落并提取文本
for (int i = 0; i < ().getCount(); i++) {
TableRow row = ().get(i);
for (int j = 0; j < row.getCells().getCount(); j++) {
TableCell cell = row.getCells().get(j);
for (int k = 0; k < cell.getParagraphs().getCount(); k++) {
Paragraph paragraph = cell.getParagraphs().get(k);
bw.write() + "\t");
}
}
bw.write("\r\n");
}
bw.flush();
bw.close();
();
}
}
效果图:
示例3 删除文本框中的表格
import com..*;
import com..fields.*;
public class DeleteTable {
public static void main(String[] args) {
//加载示例文档
Document doc = new Document();
doc.loadFromFile("C:\\Users\\Test1\\Desktop\\Te;);
//获取第一个文本框
TextBox textbox = doc.getTextBoxes().get(0);
//获取文本框中第一个表格
Table table = ().getTables().get(0);
//删除第一个表格
().getTables().removeAt(0);
//保存文档
String output = "outpu;;
doc.saveToFile(output, FileFormat.Docx_2013);
}
}