调整 word 表格的列宽对于让文档看起来既整洁又方便阅读非常重要。特别是在有很多文字的表格里,合适的列宽能让阅读更顺畅。word 提供了两种方法:按百分比和固定宽度。用百分比设置方法可以适应各种屏幕,让内容排版整齐,读起来更舒服。用固定宽度设置方法让表格结构更稳定,每个部分都被精确地对准到位,特别适合需要严格对齐数字或者设计得很复杂的表格。本文将介绍如何使用 spire.doc for java 在 java 项目中基于百分比与固定值的设置方法来设置 word 表格列宽。
安装 spire.doc for java
首先,您需要在 java 程序中添加 spire.doc.jar 文件作为依赖项。您可以从 这个链接 下载 jar 文件;如果您使用 maven,则可以通过在 pom.xml 文件中添加以下代码导入 jar 文件。
com.e-iceblue
e-iceblue
https://repo.e-iceblue.cn/repository/maven-public/
e-iceblue
spire.doc
12.5.1
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 天的临时许可证。