Csharp/C#教程:使用Oledb读取Excel文件 – 将excel文件的内容视为仅文本分享


使用Oledb读取Excel文件 – 将excel文件的内容视为仅文本

我正在使用C#和OleDb从excel 2007文件中读取数据。

我使用的连接字符串是:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:myFoldermyExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1"; 

以下是读取excel的代码:

 private OleDbConnection con = null; private OleDbCommand cmd = null; private OleDbDataReader dr = null; private OleDbDataAdapter adap = null; private DataTable dt = null; private DataSet ds = null; private string query; private string conStr; public MainWindow() { this.InitializeComponent(); this.query = "SELECT * FROM [Sheet1$]"; this.conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\301591\Desktop\Fame.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text""; } private void btnImport_Click(object sender, RoutedEventArgs e) { this.ImportingDataSetWay(); } private void ImportingDataSetWay() { con = new OleDbConnection(conStr); cmd = new OleDbCommand(query, con); adap = new OleDbDataAdapter(cmd); ds = new DataSet(); adap.Fill(ds); this.grImport.ItemsSource = ds.Tables[0].DefaultView; } 

这里grImport是我的WPF数据网格,我使用的是自动生成的列。

如何确保存储在Excel中的内容始终以字符串forms读取。 我不允许修改任何注册表值来实现此目的。 有没有更好的方法来阅读excel。 请指导我。 如果您需要任何其他信息,请告诉我。

此致,Priyank

你可以尝试oledb提供者连接字符串如下。

HDR = NO表示oledb将所有行读作数据[NO HEADER]。 因此,当您的标题列都是文本时,它会将所有列中的所有行数据视为文本。 将数据填充到DataSet后,您必须删除第一行,因为它不是数据。

 Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:myFoldermyExcel2007file.xlsx;Extended Properties="Excel 12.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text""; 

我们发现的一个修复是确保第一行包含标题。 即确保列名在第一行。 如果那是可能的。

然后在您的代码中,您必须以编程方式忽略第一行,同时根据需要将列名称与其进行区分。

在连接字符串中使用此选项。

  IMEX=1;HDR=NO; 

我不确定这一点

  TypeGuessRows=0;ImportMixedTypes=Text 

我有类似的问题..我解决了它通过拆分连接字符串,如下面的字符串中所述。 请注意,在扩展属性之后..有(char)34包围IMEX = 1字符串的添加。 如果没有(char)34,它将会出错“ 无法找到ISAM” 。 希望这也能解决ACE提供商的问题

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

 strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Server.MapPath("UploadedExcel/" + FileName + ".xls") + ";Extended Properties=" + (char)34 + "Excel 8.0;IMEX=1;" + (char)34; 

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

ctvol管理联系方式QQ:251552304

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

(0)
上一篇 2021年11月13日
下一篇 2021年11月13日

精彩推荐