C# 是否有一种方法可以减少将数据从一个excel文件复制到另一个excel文件的不同列所需的性能时间?

C# 是否有一种方法可以减少将数据从一个excel文件复制到另一个excel文件的不同列所需的性能时间?,c#,.net,excel,C#,.net,Excel,我一直在开发一种工具,其中数据从输入excel文件复制到位于不同列位置的另一个excel文件。目前,我正在使用sheets.Range函数将数据从单个列复制到另一个列,方法是使用循环显示行数(因为还有一些数据操作)。由于输入文件太大,因此花费的时间太长。我如何优化它? 注意:我不能跳过循环 此外,我尝试了并行编程的概念,但由于输出数据输入依赖于前一行,所以无法完成。 一些同事建议我将excel转换成csv文件,然后对数据进行操作。但是,我不确定这是否有帮助。如果是,我们怎么做?我会首先尝试将ex

我一直在开发一种工具,其中数据从输入excel文件复制到位于不同列位置的另一个excel文件。目前,我正在使用sheets.Range函数将数据从单个列复制到另一个列,方法是使用循环显示行数(因为还有一些数据操作)。由于输入文件太大,因此花费的时间太长。我如何优化它? 注意:我不能跳过循环 此外,我尝试了并行编程的概念,但由于输出数据输入依赖于前一行,所以无法完成。
一些同事建议我将excel转换成csv文件,然后对数据进行操作。但是,我不确定这是否有帮助。如果是,我们怎么做?

我会首先尝试将excel文件转换为csv文件,就像您的好友提到的那样。拉入csv对象比excel对象便宜得多。您只需使用Microsoft.Office.Interop.Excel并通过调用:

myExcelWorkbook.SaveAs(@"c:\myExcelWorkbookIsNowA_CSVFile.csv",......)

然后使用csv文件进行数据操作。并查看性能是否有所提高。

csv可能会有其他问题,多大是大,多慢是慢。分析概述了哪些问题?有问题的代码在哪里?您使用什么库来使用Excel文件?它是使用默认的COM lbs还是其他一些,比如EPPlus?一种解决方案是将整个输入表复制到输出excel文件中,并在那里执行循环?这意味着您的代码不必从另一个文件获取数据。另一个可能的解决方案是复制工作表,用vlookup公式找到正确的输入值?同样,只提供高级解决方案,因为您没有发布代码、输入和输出数据。参见1)读取输入excel文件2)将内容复制为CSV 3)粘贴到文本磁贴4)读取文本文件5)执行数据操作6)将数据写入输出excel文件是。它帮助我减少了大量的执行时间。谢谢