使用OpenXML SDK v2.0删除20,000多行Excel文件中的第一行时,是否有人遇到性能问题?
我正在使用Open XML SDK文档中建议的删除行编码。使用Open XML SDK删除第一行只需要几分钟,但在Excel应用程序中只需要一秒钟。
我最终发现瓶颈实际上是在处理行删除的泡沫方法。删除的行后有许多行更新。所以在我的情况下,有大约20,000行需要更新,逐行向上移动数据。
我想知道是否有更快的方法来删除行。
有人有想法吗?
答案 0 :(得分:4)
答案 1 :(得分:0)
解压缩文件,操作文件并重新打包文件的方法非常错误。
这个怎么样:如果你说,它在Excel中工作正常:你试过使用Interop吗?这将启动一个新的Excel实例(可见或不可见),然后您可以打开文件,删除该行,再次保存并关闭该应用程序。
using System;
using System.IO;
using Microsoft.Office.Interop.Excel;
using Excel = Microsoft.Office.Interop.Excel;
public void OpenAndCloseExcel()
{
Excel.Application excelApp = new Excel.Application();
// Open Workbook, open Worksheet, delete line, Save
excelApp.Quit();
}
Range-object符合多种用途。也用于删除元素。看看:MSDN Range-Description。还有一个提示:Interop使用Excel,因此所有对象都必须使用基于1的索引进行处理! 有关更多资源,请查看this StackOverflow-thread。