c# - 有没有一种方法可以减少将数据从一个 excel 文件复制到另一个 excel 文件的不同列的性能时间?
问题描述
我一直在开发一种工具,在该工具中,数据从输入 excel 文件复制到不同列位置的另一个 excel 文件。目前,我正在使用 sheet.Range 函数通过对存在的行数使用循环将数据从单个列复制到另一列(因为还有一些数据操作)。由于输入文件太大,因此花费了太多时间。我该如何优化它?注意:我不能跳过循环此外,我尝试了并行编程概念,但由于输出数据条目依赖于前一行,因此无法完成。有同事建议我把excel转成csv文件,然后再对数据进行操作。但是,我不确定这是否会有所帮助。如果是,我们该怎么做?
解决方案
我会首先尝试将 excel 文件转换为 csv 文件,就像你朋友提到的那样。拉入 csv 对象比 excel 对象便宜得多。您可以通过使用 Microsoft.Office.Interop.Excel 并调用:
myExcelWorkbook.SaveAs(@"c:\myExcelWorkbookIsNowA_CSVFile.csv",......)
然后使用 csv 文件进行数据操作。看看性能是否有所提高。
推荐阅读
- r - 如何在 t_test 函数中使用带引号的字符串
- sql - Microsoft SQL Server Management Studio 和 Oracle 链接服务器
- sql-server - SSRS 报表管理器数据源和目录表差异
- powershell - Powershell 将文件从 Docker 容器中的远程计算机复制到本地计算机
- reactjs - 如何对依赖于 redux props 的组件进行单元测试
- c# - 如何在 Blazor.net 的页面参数中使用连字符/破折号
- python - 过拟合alexnet——python
- ruby-on-rails - 传递给 #or 的关系必须在结构上兼容 Rails 5.1 到 5.2
- c# - 无法从 c# Microsoft.Reporting.WebForms.ReportViewer 将参数传递给 SSRS 报告
- android - Android Room - 获取父母的所有基本孩子