Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.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文件中读取第一行作为标题(慢)_C#_Excel_C# 4.0_Visual Studio 2012_Visual Studio 2013 - Fatal编程技术网

C# 从Excel文件中读取第一行作为标题(慢)

C# 从Excel文件中读取第一行作为标题(慢),c#,excel,c#-4.0,visual-studio-2012,visual-studio-2013,C#,Excel,C# 4.0,Visual Studio 2012,Visual Studio 2013,我正在尝试读取Excel文件(.xlsb)格式的第一行。哪些是列标题 我在SO和网站上做了研究。但我试过的代码。第一行的读取时间约为1:05min 是的,我的Excel文件中有大约88列 现在我找到的代码是 String constr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + ";Extended Properties='Excel 12.0 XML;HDR=YES;';"; OleDbConnectio

我正在尝试读取Excel文件(.xlsb)格式的
第一行
。哪些是
列标题
我在SO和网站上做了研究。但我试过的代码。第一行的读取时间约为
1:05min

是的,我的Excel文件中有大约88列

现在我找到的代码是

 String constr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + ";Extended Properties='Excel 12.0 XML;HDR=YES;';";
 OleDbConnection con = new OleDbConnection(constr);
 con.Open();
 Console.Write("Start: "+DateTime.Now.ToLongTimeString());
 DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, SheetName, null });
 Console.Write("Ended: "+DateTime.Now.ToLongTimeString());
问题

这是最好的方法吗。或者我应该尝试不同的代码。如有任何建议,将不胜感激。请对您的代码进行一些分析。哪些代码占用的时间最多?是
con.Open()
行还是
con.GetOleDbSchemaTable
@ElectricLlama从
Start
end
之间的那一行需要
1min
这篇非常相似的帖子表明,当工作簿关闭时,它可能运行得更快。返回的是一个表模式还是多个表模式?@ElectricLlama我已经获得了我的工作表名称,它像闪电一样快速。当它开始获取数据时,一行或两行大约需要1分钟。是的,Excel工作簿中有许多工作表。是的,我的工作簿已关闭。好的,我现在只是猜测,但也许您可以对第二个对象数组参数施加更多限制,这可能会减少返回的数据。但实际上我只是在这里猜测。