Tag: oledb

从xls文件中select行不为空的地方

在从xls文件读取数据时,使用oldedb如下,没有问题 OleDbCommand cmd = new OleDbCommand("SELECT * FROM [" + fileID + "]", oledbConn); DataSet ds = new DataSet(); OleDbDataAdapter da = new OleDbDataAdapter(cmd); da.Fill(ds); 但是我想扩展select语句来只select某个不为空的列的行WHERE … IS NOT NULL,那是什么…假设是?

OleDb – 检索Excel工作表名称还会检索已定义的名称

我正在尝试检索Excel工作簿中的工作表列表,但是我找回的集合中同时包含工作表名称和数据列标识,它们在原始xlsx xml中似乎被称为“已定义名称”。 你能告诉我如何只返回工作表名称? 我正在使用的代码是: OleDbConnection connExcel = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;" + @"Data Source=" + FilePath + ";" + @"Extended Properties=""Excel 8.0;HDR=Yes;"""); OleDbCommand cmdExcel = new OleDbCommand(); cmdExcel.Connection = connExcel; connExcel.Open(); DataTable testTable = connExcel.GetSchema("Tables"); 生成的testTable集合的内容包含TABLE_NAME下的条目: DATA1 DATA2 DATA3 DATA4 DATA5 工作表Sheet1 $ TEST1 -TEST2 TESTHKEY TESTKEYS TESTVKEY 他们都有TABLE的TABLE_TYPE。 对应于上面的原始工作簿将有1个工作表包含5列,第一行将包含一个标题。 我只对Sheet1 $条目感兴趣。 电子表格是在Excel 2010中创build的,我试图在用C#编写的ASP.NET 4应用程序中处理它。 有可能,工作表名称可能已被更改,所以我不能保证它将始终是Sheet1 $。

当我尝试在C#程序中上传文件时出现错误消息“外部表格不是预期的格式”

我正在创build一个C#程序,我可以在C#中浏览和查看文件到datagridview中。 我已经testing了很多次,并且运行良好。 但昨天当我试图再次做一个错误messaged显示“ 提供程序= Microsoft.Jet.OLEDB.4.0; ”。 我正在testing的文件与之前使用的文件相同(没有错误)。 我没有做任何与文件(Excel文件)。 这是错误消息的打印屏幕: 这是我使用的代码: private void buttonUpload_Click(object sender, EventArgs e) { string OleDBConnection = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", textBoxFileName.Text); string query = String.Format("select * from [{0}$]", "Sheet1"); OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, OleDBConnection); DataSet dataSet = new DataSet(); dataAdapter.Fill(dataSet); dataGridView1.DataSource = dataSet.Tables[0]; }

从两个(不同的)Excel文件select.NET

任何人都可以帮助我这个请。 我想要做这样的事情 strSQL = SELECT [filename1].[" & xlSheet.Name & "$].Col1 , [filename1].[" & xlSheet.Name & "$].Col2 FROM [filename1].[" & xlSheet.Name & "$] UNION ALL SELECT [filename2].[" & xlSheet2.Name & "$].Col1 , [filename2].[" & xlSheet2.Name & "$].Col2 FROM [Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename2+ ";Extended Properties=Excel 12.0;HDR=Yes].[" & xlSheet2.Name & "$] WHERE [filename1].[" & xlSheet.Name & "$].Col1= [filename2].[" […]

ADO与Delphi XE中的XLSX文件

这里的问题是与Excel的ADO连接 – 这仍然是在Dephi XE环境中读取/写入excel文件的标准方式吗? 当使用ACEOLEDB驱动程序(ACE 12)进行读写时,我们会遇到多个问题,这包括 用标签读取单元格不返回结果 导出网格时出现“无效浮点”。 我们也注意到,在微软的网站上有许多版本的ACE 12驱动程序(通过Access数据库驱动程序可执行文件),并且它们每个都与Delphi有不同的问题。 考虑到这些事情, 在这一点上使用Excel的ADO不好? 是否有其他人有这些问题,你做了什么来解决它们(除了使用XLS文件而不是XLSX)?

操作必须使用可更新的查询 – Excel 2007文件作为OleDB数据源

在尝试使用OLEDB更新Excel表格中的字段时,经常遇到此错误。 这有时会起作用,但是我经常得到这个错误。 (操作必须使用可更新的查询) 连接代码: string filepath = "c:\\SampleFile.xls"; OleDbConnection MyConnection; MyConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + filepath + "';Extended Properties=Excel 8.0;"); con3 = MyConnection; MyConnection.Open(); if (MyConnection.State != ConnectionState.Open) { do { Thread.Sleep(50); } while (MyConnection.State != ConnectionState.Open); } 以下是执行更新的代码: linesx = "231,214,412"; //this is variable string sqlx = string.Format("Update [Resolved Results$] set [Audit Result] […]

使用OleDB获取Excel工作表数据,但它是“随机”不读一行的单元格数据

我目前正试图从成千上万的excel文件中提取某些数据。 但是这个问题让我感到非常疯狂,而且我正在紧张的工作中,在短时间内完成所有这些工作。 问题是,它似乎没有检索所有的数据,特别是这些“选项”列,我称之为。 它应该一直到-10这个特定的表。 这些是整张纸上唯一有时无法读取的值。它们有时会倾斜45度天使,但如果在读取文件之前手动更改其方向,似乎没有什么区别。 这是它在做什么: 这是有问题的Excel文件(不知道这个链接是否可以工作): https://drive.google.com/file/d/0B7-iwpcLS0GoaVpHYkxPTWdIYUE/view?usp=sharing 如果Google电子表格失败,则直接下载链接: http://www.filedropper.com/123456_1 这是我正在使用的基本代码从我的应用程序中删除: Dim xlAppIn As New Excel.Application Dim xlWorkbookIn As Excel.Workbook = xlAppIn.Workbooks.Open(sFilename) xlAppIn.Visible = False Dim oleDbConnStr As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & sFilename & ";Extended Properties='Excel 12.0; HDR=No; IMEX=1'" Dim oleDbConn As OleDbConnection = New OleDbConnection(oleDbConnStr) oleDbConn.Open() Dim sSheetName As String = xlWorkbookIn.Sheets(1).Name.ToString() […]

如何编写OleDbCommand来获取不同的行?

我只想要从我的Excel表中具有不同的ManufacturerPartNumber的行。 所以,我给了我这样的命令文本: cmdExcel.CommandText = "SELECT Name, DISTINT [ManufacturerPartNumber],Price From [" + SheetName + "] WHERE [ManufacturerPartNumber] IS NOT NULL"; 但是这不起作用,如果我将DISTINCT [ManufacturerPartNumber]更改为ManufacturerPartNumber ,它就可以工作。 它返回我不想发生的重复行。 这是我得到的错误: An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred Additional information: Syntax error (missing operator) in query expression 'DISTINCT [ManufacturerPartNumber]'. 样本数据 我的Excel工作表 Name ManufacturerPartNumber Price PenDrive AGBN514A 5.4 HardDisk NKDNKHS5 9.6 DataCard AGBN514A […]

当我尝试使用OLE DB读取Excel时,所有值都是空的

我已经做了一个小程序parsingexcel。 只有在执行之前它才能正常工作我手动打开Excel文件(是不是很奇怪?)。 即首先我打开Excel文件,第二我执行程序,我得到很好的结果 如果我之前没有打开excel执行它,我会得到空值 我的连接string(excel文件的扩展名为.XLSX): connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + path + "\\" + f.Name + ";" + "Extended Properties='Excel 12.0;HDR=Yes;IMEX=1'"; 我的代码打开与oleDB的连接: using (OleDbConnection cnn = new OleDbConnection(connectionString)) { cnn.Open(); … String sql = "SELECT * FROM [" + sheetNames[i] + "]"; OleDbDataAdapter da = new OleDbDataAdapter(sql, cnn); DataTable dt = new DataTable(); […]

导入Excel提供错误“System.InvalidOperationException:Microsoft.Jet.OLEDB.4.0”提供程序未注册“

我有一个旧项目运行良好。 现在,我试图从Excel导入时出现错误: System.Invalidoperationexception“microsoft.jet.oledb.4.0”提供程序未注册 我可以login。 我试图改变项目的平台到x86 / x64 /任何CPU,但没有用。 我也改变了: Provider = Microsoft.Jet.OLEDB.4.0;数据源 至 Provider = Microsoft.Jet.OLEDB.12.0; Data Source 但没用。 这是我导入Excel的代码: private void button1_Click_1(object sender, EventArgs e) { // string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\BILL REGISTER 97.xls;Extended Properties=\"Excel 8.0;HDR=Yes;\";"; //string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + txtfilepath.Text + ";Extended Properties=\"Excel 8.0;HDR=Yes;\";"; string connStr = "Provider=Microsoft.Jet.OLEDB.12.0;Data Source=" + txtfilepath.Text […]