苏州三木软件科技有限公司

 找回密码
 立即注册
搜索
热搜: 活动
查看: 3841|回复: 8

使用 DevExpress 的 Word Processing Document API

[复制链接]

35

主题

53

帖子

371

积分

中级会员

Rank: 3Rank: 3

积分
371
发表于 2024-12-25 12:05:46 | 显示全部楼层 |阅读模式
本帖最后由 lzg 于 2024-12-25 17:59 编辑

使用 DevExpress 的 Word Processing Document API ,将word文档中的表格,设置为"根据窗口调整表格",不知道要用table的哪个属性,怎么写代码。属性值是不是:AutoFitBehaviorType.AutoFitToWindow。

根据窗口调整表格,在Word中的操作如下:先选中表格,右键,再选:自动调整--根据窗口调整表格。  我想用代码实现这个操作。
回复

使用道具 举报

100

主题

405

帖子

2549

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2549
QQ
发表于 2024-12-25 17:36:23 | 显示全部楼层
  1. table.Style.BackColor=Color.White;
  2. table.Style.CellBackgroundColor=Color.White;
  3. table.Style.TableBackgroundColor=Color.White;
  4. table.Style.ForeColor=Color.White;
复制代码


我猜的,你可以自己测试一下。
回复

使用道具 举报

100

主题

405

帖子

2549

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2549
QQ
发表于 2024-12-25 20:16:43 | 显示全部楼层
试试下面的代码
  1. table.SetPreferredWidth(12,DevExpress.XtraRichEdit.API.Native.WidthType.Auto);
复制代码
回复

使用道具 举报

35

主题

53

帖子

371

积分

中级会员

Rank: 3Rank: 3

积分
371
 楼主| 发表于 2024-12-26 19:10:51 | 显示全部楼层
document.Tables.Create(document.Range.Start,2,3,AutoFitBehaviorType.AutoFitToWindow);
上面这句是创建新的表格,AutoFitBehaviorType.AutoFitToWindow  就是根据窗口调整表格。但是,对于已经存在的表格,要使用table的哪个属性,才能设置为根据窗口调整表格。
回复

使用道具 举报

100

主题

405

帖子

2549

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2549
QQ
发表于 2024-12-26 20:10:33 | 显示全部楼层
我上面的代码你试了吗?
回复

使用道具 举报

35

主题

53

帖子

371

积分

中级会员

Rank: 3Rank: 3

积分
371
 楼主| 发表于 2024-12-27 09:18:29 | 显示全部楼层
上面的代码试过了,只能实现自动列宽的功能,也就是某个列的内容多时,会自动调整各列的宽度。但不会改变整个表的宽度。
回复

使用道具 举报

35

主题

53

帖子

371

积分

中级会员

Rank: 3Rank: 3

积分
371
 楼主| 发表于 2024-12-27 17:50:23 | 显示全部楼层
上面的代码试过了,可以根据内容自动调整各列的宽度。但不是  根据窗口调整表格。我需要给表设置AutoFitBehaviorType.AutoFitToWindow这个属性值,但不知道用使用table的哪个属性来设置。
回复

使用道具 举报

100

主题

405

帖子

2549

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2549
QQ
发表于 2024-12-27 21:36:21 | 显示全部楼层
控件不是我写的,文档也查不到,只能靠猜,你最好提供一个Demo出来。我也好帮你提前测试,这样效率会高一点。
  1. table.PreferredWidthType=WidthType.FiftiethsOfPercent;
  2. table.PreferredWidth=1;
复制代码
回复

使用道具 举报

35

主题

53

帖子

371

积分

中级会员

Rank: 3Rank: 3

积分
371
 楼主| 发表于 2025-1-7 18:03:48 | 显示全部楼层
  1. using DevExpress.XtraRichEdit.API.Native;

  2. // 创建文档
  3. Document document = new Document();

  4. // 创建表格(3 行 3 列)
  5. Table table = document.Tables.Create(document.Range.Start, 3, 3);

  6. // 设置表格布局为根据窗口调整
  7. table.TableLayout = TableLayoutType.Autofit;

  8. // 设置表格宽度为 100%(根据窗口宽度调整)
  9. table.PreferredWidthType = WidthType.FiftiethsOfPercent; // 设置宽度单位为百分比
  10. table.PreferredWidth = 100 * 50; // 100% 宽度(50 单位 = 1%)

  11. // 填充表格内容
  12. for (int row = 0; row < 3; row++)
  13. {
  14.     for (int col = 0; col < 3; col++)
  15.     {
  16.         table[row, col].Text = $"Row {row + 1}, Col {col + 1}";
  17.     }
  18. }

  19. // 保存文档
  20. document.SaveDocument("output.docx", DocumentFormat.OpenXml);
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|苏州三木软件科技有限公司 ( 苏ICP备2022038390号 )

苏公网安备 32058502010732号

GMT+8, 2025-1-18 11:42 , Processed in 0.068625 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表