调整 Word 表格的列宽对于让文档看起来既整洁又方便阅读非常重要。特别是在有很多文字的表格里,合适的列宽能让阅读更顺畅。Word 提供了两种方法:按百分比和固定宽度。用百分比设置方法可以适应各种屏幕,让内容排版整齐,读起来更舒服。用固定宽度设置方法让表格结构更稳定,每个部分都被精确地对准到位,特别适合需要严格对齐数字或者设计得很复杂的表格。本文将介绍如何使用 Spire.Doc for Java 在 Java 项目中基于百分比与固定值的设置方法来设置 Word 表格列宽。
安装 Spire.Doc for Java
首先,您需要在 Java 程序中添加 Spire.Doc.jar 文件作为依赖项。您可以从 这个链接 下载 JAR 文件;如果您使用 Maven,则可以通过在 pom.xml 文件中添加以下代码导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>12.9.0</version>
</dependency>
</dependencies>
Java 基于百分比设置 Word 表格列宽
使用百分比值设置 Word 表格列宽时需先对表格设置下百分比宽度类型,Table.SetPreferredWidth(new PreferredWidth(WidthType.Percentage, (short)100)),然后依次遍历每个列设置相同或不同的百分比值的宽度。以下是详细的步骤:
- 创建一个 Document 对象。
- 使用 Document.loadFromFile() 方法加载一个文档。
- 使用 Document.getSections().get(0) 获取文档的第一个节。
- 使用 Section.getTables().get(0) 获取节中的第一个表格。
- 使用 for 循环遍历表格中的所有表格行。
- 使用 TableRow.getCells().get(index).setCellWidth(value, CellWidthType.Percentage) 方法为不同列的单元格设置百分比值的列宽。
- 使用 Document.saveToFile() 方法保存到 Word 文档。
- Java
import com.spire.doc.*;
public class PercentageColumnWidth {
public static void main(String[] args) {
// 创建一个新的Document对象
Document doc = new Document();
// 加载名为"示例.docx"的文档
doc.loadFromFile("示例.docx");
// 获取文档的第一个Section
Section section = doc.getSections().get(0);
// 将Section中的第一个Table转换为Table类型
Table table = section.getTables().get(0);
// 创建一个PreferredWidth对象,设置宽度类型为百分比,并设置宽度值为100%
PreferredWidth percentageWidth = new PreferredWidth(WidthType.Percentage, (short)100);
// 设置Table的首选宽度为上面创建的PreferredWidth对象
table.setPreferredWidth(percentageWidth);
// 定义一个TableRow类型的变量
TableRow tableRow;
// 遍历Table的所有行
for (int i = 0; i < table.getRows().getCount(); i++) {
// 获取当前行
tableRow = table.getRows().get(i);
// 设置第一列单元格的宽度为34%,类型为百分比
tableRow.getCells().get(0).setCellWidth(34, CellWidthType.Percentage);
// 设置第二列单元格的宽度为33%,类型为百分比
tableRow.getCells().get(1).setCellWidth(33, CellWidthType.Percentage);
// 设置第三列单元格的宽度为33%,类型为百分比
tableRow.getCells().get(2).setCellWidth(33, CellWidthType.Percentage);
}
// 保存修改后的文档,并指定文件格式为Docx2016
doc.saveToFile("以百分比值设置列宽.docx", FileFormat.Docx_2016);
// 关闭文档
doc.close();
}
}
Java 基于固定值设置 Word 表格列宽
使用固定值设置 Word 表格列宽时需先对表格设置固定布局,Table.getTableFormat().setLayoutType(LayoutType.Fixed),然后依次遍历每个列设置相同或不同的固定值的宽度。以下是详细的步骤:
- 创建一个 Document 对象。
- 使用 Document.loadFromFile() 方法加载一个文档。
- 使用 Document.getSections().get(0) 获取文档的第一个节。
- 使用 Section.getTables().get(0) 获取节中的第一个表格。
- 使用 for 循环遍历表格中的所有表格行。
- 使用 TableRow.getCells().get(index).setCellWidth(value, CellWidthType.Point) 方法为不同列的单元格设置固定值的列宽。
- 使用 Document.saveToFile() 方法保存到 Word 文档。
- Java
import com.spire.doc.*;
public class FixedColumnWidth {
public static void main(String[] args) {
// 创建一个新的Document对象
Document doc = new Document();
// 加载名为"示例.docx"的文档
doc.loadFromFile("示例.docx");
// 获取文档的第一个Section
Section section = doc.getSections().get(0);
// 将Section中的第一个Table转换为Table类型
Table table = section.getTables().get(0);
// 设置表格布局类型为固定
table.getTableFormat().setLayoutType(LayoutType.Fixed);
// 设置表格大小调整方式为非自动
table.getTableFormat().isAutoResized(false);
// 获取左页边距
float leftMargin = section.getPageSetup().getMargins().getLeft();
// 获取右页边距
float rightMargin = section.getPageSetup().getMargins().getRight();
// 计算页面宽度减去左右边距
double pageWidth = section.getPageSetup().getPageSize().getWidth() - leftMargin - rightMargin;
// 定义一个TableRow类型的变量
TableRow tableRow;
// 遍历Table的所有行
for (int i = 0; i < table.getRows().getCount(); i++) {
// 获取当前行
tableRow = table.getRows().get(i);
// 设置第一列单元格宽度为页面宽度的34%
tableRow.getCells().get(0).setCellWidth((float)(pageWidth * 0.34), CellWidthType.Point);
// 设置第二列单元格宽度为页面宽度的33%
tableRow.getCells().get(1).setCellWidth((float)(pageWidth * 0.33), CellWidthType.Point);
// 设置第三列单元格宽度为页面宽度的33%
tableRow.getCells().get(2).setCellWidth((float)(pageWidth * 0.33), CellWidthType.Point);
}
// 保存修改后的文档,并指定文件格式为Docx2016
doc.saveToFile("以固定值设置列宽.docx", FileFormat.Docx_2016);
// 关闭文档
doc.close();
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。