c# - 在 MS Word 中填写表格需要花费大量时间

标签 c# ms-word

我编写了以下代码来将外部数据表添加到 MS word 文档中的另一个表中,它工作正常但在行数超过 100 的情况下以及在添加带行的表的情况下需要花费大量时间计数超过 500,它填充 ms word 表真的很慢,无法完成任务。

我尝试隐藏文档并禁用文档的屏幕更新,但仍然没有解决性能缓慢的问题。

//Get the required external data to the DT data table            
DataTable DT = XDt.GetData();
Word.Table TB;
int X = 1;
foreach (DataRow Rw in DT.Rows)
{
    Word.Row Rn = TB.Rows.Add(TB.Rows[X + 1]);

    for(int i=0;i<=DT.Columns.Count-1;i++)
        {
           Rn.Cells[i+1].Range.Text = Rw[i].ToString()); 
        }
    X++;
}

那么有没有办法让这个过程进行得更快呢?

最佳答案

向 Word 添加表格的最有效方法是首先将数据连接成带分隔符的文本字符串,其中“/n”必须是行尾符号(记录分隔符)。单元格结尾(字段分隔符)可以是您喜欢的任何不在组成表格的字符串内容中的字符。

将此字符串分配给 Range 对象,然后使用 ConvertToTable() 方法创建表。

关于c# - 在 MS Word 中填写表格需要花费大量时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33994165/

相关文章:

c# - 将Json反序列化为在Asp.net中实现Ienumerable的类

java - 此 C# 泛型方法模式的等效 Java 实现是什么

vba - 从文本文件中读取行但跳过前两行

vba - 从一个Word文档中选择一系列文本,然后复制到另一个Word文档中

java - 如何使用 docx4java 读取 msword docx 中的所有合并字段?

c# - Winforms - 在执行长时间运行的同步请求期间如何保持窗口完全绘制/响应?

c# - 查找所选单元格的相似连接邻居以形成集群

r - 无法在 RStudio knitr 中使用修改后的单词模板

vba - 计算Word文档中的表格数量

javascript - 如何使用 ASP.NET Web API + AngularJs 基于 cookie 的身份验证来验证 cookie