gpt4 book ai didi

C# - 如何更快地将列表导出到电子表格?

转载 作者:行者123 更新时间:2023-12-04 21:46:39 26 4
gpt4 key购买 nike

我有一个程序调用下面的方法,它只是将列表导出到 Excel 电子表格。程序的大部分运行时间都用于执行此方法一次。在我最后一次运行中,这个方法执行了 5 分 50 秒,列表大小约为 46,000。您能否就如何改进代码以使此方法运行得更快提供任何建议?我不觉得这应该需要大约 6 分钟来执行......但唯一让我印象深刻的是,可能有一种更有效的方法可以将列表导出到电子表格列,而无需使用虚拟整数变量“i”,一次将一个字符串复制到列中。

       public static string ExportListToSpreadsheet(string xlwbk, string xlwksht, List<string> tagnamelist)
{
var watch = new Stopwatch();
watch.Start();
object misValue = Refl.Missing.Value;
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook;
xlWorkbook = xlApp.Workbooks.Add(misValue);

Excel.Worksheet xlsheet = xlWorkbook.Sheets.Add();
xlsheet.Name = xlwksht;
int i = 1;

foreach(string tagname in tagnamelist)
{
xlsheet.Cells[i,1].Value = tagname;
i += 1;
}

string filename = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\" + xlwbk;
xlWorkbook.SaveAs(filename, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, misValue,
misValue, misValue, misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, misValue, misValue, misValue, misValue, misValue);
xlWorkbook.Close();
watch.Stop();
return watch.Elapsed.ToString();

}
谢谢你的帮助。

最佳答案

试试 ClosedXML 库。我已将具有数万行的 DataTables 放入电子表格中,大约需要 10 秒。
对于列表,您只需执行以下操作:

using ClosedXML.Excel;
..
var wb = new XLWorkbook();
var ws = wb.Worksheets.Add("myData");
ws.Cell(1, 1).InsertData(tagnamelist);
wb.SaveAs(@"c:\..\tagnamelist.xlsx");

关于C# - 如何更快地将列表导出到电子表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63725686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com