aspose.word需要有license.xml许可!!
完整代码放在最后
第一步,导入依赖
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>14.9.0</version>
</dependency>
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import com.aspose.words.Document;
import com.aspose.words.ImportFormatMode;
import com.aspose.words.License;
import com.aspose.words.SaveFormat;
【重点】第二步,获取许可
public static boolean getLicense() {
boolean result = false;
try {
String xmlFilePath = "source/lic/license.xml";
FileInputStream fis = new FileInputStream(xmlFilePath);
License aposeLic = new License();
aposeLic.setLicense(fis);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
xmlFilePath改成自己的许可所在位置
第三步,设置对应的输入输出路径,修改为自己需要的
String sourceFolder = "./输出文档/"; // 要合并的文件夹路径
String mergedFilePath = "merged_document.docx"; // 合并后的文档保存路径
合并类完整功能
public static void merge_words() {
// 验证License
if (!getLicense()) {
return;
}
try {
String sourceFolder = "./输出文档/"; // 要合并的文件夹路径
String mergedFilePath = "merged_document.docx"; // 合并后的文档保存路径
File folder = new File(sourceFolder);
File[] files = folder.listFiles();
int mergedFileCount = 0;
if (files != null) {
// 创建一个新的空白文档作为合并结果
Document mergedDocument = new Document();
System.out.println("当前读取到文件总数:" + files.length);
for (File file : files) {
if (file.isFile() && (file.getName().toLowerCase().endsWith(".docx") || file.getName().toLowerCase().endsWith(".doc"))) {
// 加载当前文档
Document doc = new Document(file.getAbsolutePath());
// 输出文件名
String[] filePathParts = file.getAbsolutePath().split("\\\\");
System.out.println(filePathParts[filePathParts.length - 1]);
// 规范化当前文档的内容,确保格式正确
doc.updateFields();
doc.updateListLabels();
doc.acceptAllRevisions();
// 将当前文档的内容合并到结果文档中
mergedDocument.appendDocument(doc, ImportFormatMode.KEEP_SOURCE_FORMATTING);
// 输出计数
mergedFileCount++;
}
}
// 保存合并后的文档
mergedDocument.save(mergedFilePath, SaveFormat.DOCX);
System.out.println("当前已合并:" + mergedFileCount + ",总需合并:" + files.length);
System.out.println("文件夹内的文档已合并完成。");
} else {
System.out.println("文件夹为空或无法访问。");
}
} catch (Exception e) {
e.printStackTrace();
}
}
完整主类代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import com.aspose.words.Document;
import com.aspose.words.ImportFormatMode;
import com.aspose.words.License;
import com.aspose.words.SaveFormat;
public class merge_for_aspose {
public static boolean getLicense() {
boolean result = false;
try {
String xmlFilePath = "source/lic/license.xml";
FileInputStream fis = new FileInputStream(xmlFilePath);
License aposeLic = new License();
aposeLic.setLicense(fis);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static void merge_words() {
// 验证License
if (!getLicense()) {
return;
}
try {
String sourceFolder = "./输出文档/"; // 要合并的文件夹路径
String mergedFilePath = "merged_document.docx"; // 合并后的文档保存路径
File folder = new File(sourceFolder);
File[] files = folder.listFiles();
int mergedFileCount = 0;
if (files != null) {
// 创建一个新的空白文档作为合并结果
Document mergedDocument = new Document();
System.out.println("当前读取到文件总数:" + files.length);
for (File file : files) {
if (file.isFile() && (file.getName().toLowerCase().endsWith(".docx") || file.getName().toLowerCase().endsWith(".doc"))) {
// 加载当前文档
Document doc = new Document(file.getAbsolutePath());
// 输出文件名
String[] filePathParts = file.getAbsolutePath().split("\\\\");
System.out.println(filePathParts[filePathParts.length - 1]);
// 规范化当前文档的内容,确保格式正确
doc.updateFields();
doc.updateListLabels();
doc.acceptAllRevisions();
// 将当前文档的内容合并到结果文档中
mergedDocument.appendDocument(doc, ImportFormatMode.KEEP_SOURCE_FORMATTING);
// 输出计数
mergedFileCount++;
}
}
// 保存合并后的文档
mergedDocument.save(mergedFilePath, SaveFormat.DOCX);
System.out.println("当前已合并:" + mergedFileCount + ",总需合并:" + files.length);
System.out.println("文件夹内的文档已合并完成。");
} else {
System.out.println("文件夹为空或无法访问。");
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
System.out.println("---------------------------------------");
merge_words();
System.out.println("-----------------完成!-----------------");
Open_merged.main(new String[0]);
}
}