Csharp/C#教程:如何使用c#读取xls和xlsx文件分享


如何使用c#读取xls和xlsx文件

如何使用带有OpenXML格式的 c#读取xls和xlsx文件而不使用OLEDB连接 。 我正在寻找Open XML格式的程序。

下面是我使用OLEDB预处理的代码。 但我正在寻找OpenXML格式。

public static DataTable ConvretExcelToDataTable(string FilePath) { string strConn = string.Empty; if (FilePath.Trim().EndsWith(".xlsx")) { strConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1";", FilePath); } else if (FilePath.Trim().EndsWith(".xls")) { strConn = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";", FilePath); } OleDbConnection conn = null; OleDbCommand cmd = null; OleDbDataAdapter da = null; DataTable dt = new DataTable(); try { conn = new OleDbConnection(strConn); conn.Open(); cmd = new OleDbCommand(@"SELECT * FROM [Sheet1$]", conn); cmd.CommandType = CommandType.Text; da = new OleDbDataAdapter(cmd); da.Fill(dt); } catch (Exception exc) { Console.WriteLine(exc.ToString()); Console.ReadLine(); } finally { if (conn.State == ConnectionState.Open) conn.Close(); conn.Dispose(); cmd.Dispose(); da.Dispose(); } return dt; } 

要求是以OpenXML格式实现上述转换。 谢谢。

您需要xlsx的OpenXml SDK:

https://www.microsoft.com/en-gb/download/details.aspx?id=30425

但对于XLS,您将无法使用此XLS格式不基于xml。

我使用NPOI库来访问旧文件:

https://npoi.codeplex.com/

NPOI库也支持xlsx,因此这将为您提供一致的访问方式。 下行是您必须手动循环遍历工作表/行/列,并构建数据集,如果您有大型工作簿,这可能会影响性能。 如果您想使用查询来访问数据,OLEDB是我找到的唯一方法。

如果安装了Excel,则可以使用Microsoft.Office.Interop.Excel;

https://support.microsoft.com/kb/302084

从连接字符串中删除 。 你可以给出如下。

上述就是C#学习教程:如何使用c#读取xls和xlsx文件分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+filepath.ToString() + ";Extended Properties=Excel 12.0 Xml;"); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1015861.html

(0)
上一篇 2021年12月31日
下一篇 2021年12月31日

精彩推荐