Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Excel加载项和Excel互操作_C#_Excel_Office Interop - Fatal编程技术网

C# Excel加载项和Excel互操作

C# Excel加载项和Excel互操作,c#,excel,office-interop,C#,Excel,Office Interop,好的,我正在创建一个类似于TFS的Excel加载项 它检索信息 然后,当需要保存更改时 我在所有这些方面都取得了成功,但我对excel有一个忽隐忽现的问题。 当它从服务器加载信息,然后写入excel中的单元格时,它就像鼠标在闪烁一样,每一行都以非常缓慢的速度逐单元格填充 但是使用TFS,当您检索所有任务时,它就像一个快照,并在excel中显示,没有闪烁 如何做到这一点 下面是我如何将数据添加到Excel中的 //Get the table (Index never changes and the

好的,我正在创建一个类似于TFS的Excel加载项 它检索信息 然后,当需要保存更改时

我在所有这些方面都取得了成功,但我对excel有一个忽隐忽现的问题。 当它从服务器加载信息,然后写入excel中的单元格时,它就像鼠标在闪烁一样,每一行都以非常缓慢的速度逐单元格填充

但是使用TFS,当您检索所有任务时,它就像一个快照,并在excel中显示,没有闪烁

如何做到这一点

下面是我如何将数据添加到Excel中的

//Get the table (Index never changes and the addin checks an "VeryHiden" Contentsheet for compatibility)
var tableRetainer = _workingsheet.ListObjects[2];
for(var rowRetainer = 1; rowRetainer++;
{
 //get the specific devision from the List<Dictionary<string,object>>
 rangeRetainer[rowRetainer, 1].Value2 = devision["FeeAgreementID"];
 rangeRetainer[rowRetainer, 2].Value2 = devision["Task"];
 rangeRetainer[rowRetainer, 3].Value2 = devision["Tariff"];
 rangeRetainer[rowRetainer, 4].Value2 = devision["Quantity"];
}
//获取表(索引从不更改,加载项检查“VeryHiden”内容表的兼容性)
var tablereserver=_workingsheet.ListObjects[2];
对于(var rowcearter=1;rowcearter++);
{
//从列表中获取具体的分区
RangeConserver[RowConserver,1].Value2=division[“FeeAgreementID”];
RangeConserver[RowConserver,2].Value2=分区[“任务”];
RangeConserver[RowConserver,3].Value2=division[“关税”];
RangeConserver[RowConserver,4].Value2=除法[“数量”];
}

是否分别写入每个单元格?如果是,请尝试通过一次粘贴大范围来进行优化。无论如何,您应该尝试通过互操作边界进行尽可能少的调用


另外,如果你不关心格式化的话,你可以考虑通过Ax-OlEDB编写的选项。

尝试<代码>应用程序。屏幕更新= false >在代码和<代码> Aptudio.StudioDebug=Trime< /Cl>后因这一点,陶思雀的回答我也比我更理解了Iopopt,Excel加载项通过套接字连接到服务器,然后服务器发回一个列表,我将其写入每个单元格。我已经创建了一个带有表格的模板excel文件,然后我访问该表格并使用foor循环填充每一行,然后通过访问每个单元格并设置可以使用的值
范围。设置_值(Missing.Value,MyArrayOfValues[,])
立即粘贴一个值数组。真的吗?哇,太酷了,最后一个问题。我可能需要在MyArrayOfValues[,]中包含表列标题,因为我正在执行var TABLECHASTER=\u workingsheet.ListObjects[2];var RANGECHASTER=表格固定器。范围;但是现在第1行是标题