问题描述
这可能有点奇怪。目前,我正在尝试测试一些代码,这些代码是使用Interop方法将大型文档从Microsoft Word传输到Microsoft Excel的。我的程序依靠从单词中读取单词并将其导入excel中的单元格。这些文档的长度可以有所不同,但有些文档却很长。我发现程序使用的循环总是非常好的开始,经过几千个单词和几百个单元,整个程序变慢了。例如,我能够在10分钟内浏览完本示例文档的四分之一,但整个文档要花几个小时才能完成。
我想我想知道的是这是我的循环中是否存在一个问题,该问题存储了导致速度变慢的不必要数据,或者这是Microsoft应用程序方面的问题?我尝试将单词作为整个段落而不是单个单词输入,并尝试输入单个字符,但都没有提供更快的选择。如果可能重新加载文件或从循环中退出会导致仓促,我将尝试下一个尝试,但是仅凭我的有限知识,我就感觉这是Microsoft方面的问题。
附加的是循环代码。
for (int i = 1; i <= (docs.Words.Count); i++)
{
if (docs.Words[i].Text == "\r")
{
if (i != 1 && docs.Words[i - 1].Text != "\r")
{
if (Math.Floor(count / 13) == 0)
{
count = count + 15;
}
wks.Cells[r,c].RowHeight = Math.Floor(count / 13) * 16;
count = 0;
r++;
wks.Range[wks.Cells[r,1],wks.Cells[r,9]].Merge();
}
}
else if (docs.Words[i].Text == "\r\a")
{
if (i != 1 && docs.Words[i - 1].Text == "\r\a")
{
if (Math.Floor(count/13) == 0)
{
count = count + 13;
}
wks.Cells[r,c].RowHeight = Math.Floor(count / 13) * 16;
count = 0;
r++;
c = 1;
wks.Range[wks.Cells[r,9]].Merge();
}
else
{
wks.Range[wks.Cells[r,9]].Unmerge();
c++;
}
}
else
{
try
{
wks.Cells[r,c].Value2 = wks.Cells[r,c].Value2 + docs.Words[i].Text;
Console.WriteLine((docs.Words.Count - count2).ToString());
count++;
count2++;
}
catch (Exception e)
{
Console.WriteLine(e);
continue;
}
}
}
感谢您提供的任何帮助。如果很快没有收到答案,我很可能会删除问题并继续使用较慢的选项。这不是灾难性的问题,而只是生存问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)