Tag: oledb

如何在Excel中使用c#改变odc连接文件path

我有一个Excel文件(ac#项目中的embedded式资源)与多个工作表,从SQL Server使用odc文件的连接信息获取他们的数据。 我想更新excel文件,在我指定的特定文件夹中查找这些odc文件,因此需要相应地更新excel odc连接文件path。 我怎么能通过C#做到这一点,例如,如果我输出的odc文件“d:\ odcFiles \ abc.odc”,那么我想更新Excel连接path为“d \ odcFiles \ abc.odc”。 同样对于所有其他的odc文件。 任何帮助将非常感激。 突出显示的部分是我所指的(odc文件的位置),我想通过c#在飞行中更改:

用OleDB读取Excel文件以错误的格式返回UPC号码

我必须在Web应用程序中使用OleDB读取Excel文件,并将数据保存到数据库中。 访问文件并使用DataAdapter或OleDbDataReader读取它的作品。 我需要指定IMEX = 1和TypeGuessRows = 0,因为文件中的数据有我需要parsing的标题,但它们不在第一行。 所以基本上,我需要读取行,直到我打一个已知的标题,然后开始parsing所有的数据。 在第一列中有这样的值的UPC号码: 5053366261702但即使字段被读取为文本,OleDbDataReader以科学方式返回数字,如下所示: 5.05337E+12 如果我不以文本forms读取这些行,数字将被正确地返回,但标题将会消失。 我添加了代码的重要部分。 在此先感谢您的帮助。 string conn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + fileName + "';Extended Properties='Excel 12.0;HDR=No;IMEX=1;ImportMixedTypes=Text;TypeGuessRows=0'"; using (OleDbConnection objConn = new OleDbConnection(conn)) { objConn.Open(); var exceltables = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new Object[] { null, null, null, "TABLE" }); var tablename = exceltables.Rows[0]["TABLE_NAME"]; using (OleDbCommand objCmdSelect = new OleDbCommand("SELECT […]

使用C#与OleDbConnection获取特定工作表的Excel文件中的列名

到目前为止,我已经设法得到整个Excel文件的列名,但我想要做的是获得给定表(表)的Excel文件的列名。 我如何修改代码来实现这一点。 我一直在尝试一段时间没有积极的结果,任何帮助非常感激。 public static List<String> ReadSpecificTableColumns(string filePath, string sheetName) { var columnList = new List<string>(); try { var excelConnection = new OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + filePath + "';Extended Properties='Excel 12.0;IMEX=1'"); excelConnection.Open(); var columns = excelConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, null); excelConnection.Close(); if (columns != null) { columnList.AddRange(from DataRow column in columns.Rows select column["Column_name"].ToString()); } } catch (Exception exception) { […]

C# – 使用Oledb在Excel中获取特定工作表的NamedRanges

使用Oledb,是否有可能在Excel中获得一个特殊表的所有NamedRanges? 我已经写了下面的代码给了我NamedRanges但我无法弄清楚NamedRange引用哪张表。 private String[] GetExcelSheetNames(string excelFilePath) { OleDbConnection objConn = null; System.Data.DataTable dt = null; try { //String connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFile + ";Extended Properties=Excel 12.0;"; string connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 12.0", excelFilePath); objConn = new OleDbConnection(connectionString); objConn.Open(); // Get the data table containg the schema guid. dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables_Info, null); if […]

OleDb阅读Excel发布到IIS后不读取所有行(文件大小问题)

我正在阅读使用oledb提供程序的excel以下连接string: “Provider = Microsoft.ACE.OLEDB.12.0; Extended Properties = Excel 12.0 XML; Data Source = FileName.xlsx;” 然后我只是通过“select * from …….”读取logging到数据读取器。 使用上面的连接string和代码,我可以读取所有(小,大约有45000条logging)在开发模式,即在debugging模式。 但是当我在IIS中发布相同的代码时,只有27043行正在读取,而不是所有的行。 (问题似乎与文件大小不是没有logging) 我检查了其他问题在stackoverflow有答案将IMEX值更改为1,但这种变化不帮助我。 所有的代码在debugging模式下工作正常,所以我想知道为什么它发布后不工作? 如果您有任何人遇到这个问题,请协助。 谢谢。

如何通过oledb阅读器在Excel表格中检查单元格是否包含filter?

如何通过oledb excel阅读器检查单元格是否包含filter或不在excel表单中? 想要的方法或代码相同..

Asp.Net导入Excel不能在Web服务器上运行

我需要将我的Excel文件导入到网页上的gridview。 我使用这种连接方法; Dim connectionString As String If (Path.GetExtension(fullFileName).Equals(".xls")) Then connectionString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=2""", fullFileName) ElseIf (Path.GetExtension(fullFileName).Equals(".xlsx")) Then connectionString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=2""", fullFileName) End If Dim connExcel As OleDbConnection connExcel = New OleDbConnection(connectionString) connExcel.Open() 当我在本地主机上运行它工作正常。 但是,我通过FTP传输项目到服务器后,它不会带来相同的结果。 换句话说,连接失败。 编辑:我拿这个错误; “Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册

用OleDb在同一列中具有string,数字和date字段读取Excel工作表

OleDb提供读取excel文件的舒适可能性。 对于我来说,其中一个限制似乎就是这样一种情况:列的数据types不能明确地从string转换为其他数据types。 一个例子是具有string条目,数字条目和date条目的列。 TryParse操作可能会成功实现Double和DateTime,不会提供明确的数据types。 下面的简单表格给出了一个例子。 我的问题:是否可以用OleDb来处理这种情况? 如果是的话如何? 如果不是,除了使用COM Interop读取Excel文件外,还有哪些其他可能性?

从C#更新Excel 2003/2007单元格值

我有一个没有列名的Excel工作表。 我想要更新单个单元格的值而不使用WHERE条件。 例如单元格A1是空的,我想插入string值“Foo”到它。 以下是我已经尝试过,但不工作。 System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand(); string sql = null; var myConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\\Users\\MAX\\Desktop\\test.xls';Extended Properties=Excel 8.0;"); myConnection.Open(); myCommand.Connection = myConnection; sql = "UPDATE Sheet1 SET A1='Foo'"; myCommand.CommandText = sql; myCommand.ExecuteNonQuery(); myConnection.Close();

如何使用asp.net c#在浏览器中显示excel图表

嗨,我想在网页上显示Excel图表…如果任何人知道,请告诉我如何实现… 我已经问过这里的问题,但没有人回答我,最后我得到了解决scheme…所以我再次提出我的解决scheme的问题…