Tag: oledb

Excel OleDb数据types

有没有人有我可以在Excel的CREATE TABLE语句中使用的数据types的列表? 我已经搜查了,不能拿出任何东西; 至less没有什么官方的。 从一个地方,我发现: CHAR(255) MEMO INT DATE TIME 其他数字types呢? DECIMAL等? DATETIME(在一起)? 提前致谢。

VB.NET – OleDbException说插入到Excel电子表格时,电子表格已满

我有一个VB.Net程序读取平面文件,然后逐行parsing,将数据格式化成Excel工作簿中的不同电子表格(每行可以是任何10多种不同的loggingtypes,所以我parsing并放入适当的Excel片)。 对于较小的平面文件(小于10mb),parsing器效果很好。 但是,我正在尝试超过120MB(400K +行)的文件。 在运行时,我将得到一个OleDBException,表示电子表格已满。 现在我相当确信,Excel可以处理比平面文件更大的数据集。 所以我认为这个例外并不能告诉我真正发生的事情。 我打开一个连接,然后parsing文件中的每一行,将每行插入到excel文件中。 我认为打开/closures每个插件之间的连接性能不佳。 这可能是造成这个问题吗? 任何想法我需要做什么来处理这样一个大文件? 有些情况下,平面文件可以超过500MB。 要实际插入到Excel中,我只是做下面的事情(我构build一个基于行和值的parsing的值的SQL查询): Dim conn As New OleDbConnection() conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExportLocation.Text + "\" + importFileName + "-PVF.xls;Extended Properties=""Excel 8.0;HDR=YES""" conn.Open() Dim cmd1 As New OleDbCommand() cmd1.Connection = conn …parsing器代码… cmd1.CommandText = "INSERT INTO " + rowType + " values (" + currentRowString […]

当使用OleDbConnection的Open方法时,C#Excel不会自行closures

我创build并释放对excel com接口的引用来操作excel的工作表。 在这种情况下Excel正确closures。 如果我使用OleDbDataAdapter连接来获取数据,那么Excel仍然在内存中。 我几乎读过关于这个主题的所有内容。 我已经创build子例程来适当的发布引用。 我在用: GC.Collect(); GC.WaitForPendingFinalizers(); 我还可以做些什么? 这似乎是晦涩的问题.. 这里是代码: namespace ExcelTestCode { class Program { static void Main(string[] args) { Application excel = null; Workbook workbook = null; Worksheet workSheet = null; object oMissing = Missing.Value; excel = new Application { Visible = false }; workbook = excel.Workbooks.Open(@"c:\temp.xls", 0, false, 5, "", […]

从属Excel单元格不会自动更新

我写了这个方法(在其他文章中差不多) public void update(string fileName, string sheetName) { string connString = connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath(fileName) + ";Extended Properties='Excel 12.0;HDR=NO'"; try { OleDbConnection oledbConn = new OleDbConnection(connString); oledbConn.Open(); OleDbCommand cmd = new OleDbCommand("UPDATE ["+sheetName+"$B5:B5] SET F1=17", oledbConn); cmd.ExecuteNonQuery(); oledbConn.Close(); } catch(Exception ex) { Debug.Write("Error: " + ex.Message); } } 并调用该方法: update("test.xls", "test"); 到目前为止,它工作正常,因为当我打开test.xls文件, B5更新到17 […]

用OLEDB读取Excel文件?

您好我正在阅读与Oledb的Excel文件(该文件有100000行)。 我必须快速阅读文件。 string conn; conn = ("Provider=Microsoft.ACE.OLEDB.12.0;" + ("Data Source=" + _filename + ";" + "Extended Properties=\"Excel 12.0;\"")); OleDbConnection oleDBCon = new OleDbConnection(conn); oleDBCon.Open(); DataTable dt = oleDBCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string excelsheetname = dt.Rows[0].ItemArray[2].ToString(); string SSQL = "SELECT * from [" + excelsheetname + "]"; OleDbDataAdapter oleDA = new OleDbDataAdapter(SSQL, conn); DataSet ds = new DataSet(); […]

OPENROWSET与Excel文件

我想执行简单的声明: SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;Database=C:\Temp\;','SELECT * FROM [test.csv]') 突然我今天早上收到这个消息: Msg 7308, Level 16, State 1, Line 1 OLE DB provider 'MICROSOFT.JET.OLEDB.4.0' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode. 它一直工作到今天早上! 这里是我的服务器规格:Windows 2008 R2 64位SQL Server 2008 64位 我已经安装了AccessDatabaseEngine_x64.exe。 Sql Server正在LocalService帐户下运行。 我已经设置每个人拥有“C:\ Temp”以及“C:\ Windows \ ServiceProfiles \ […]

如何更新excel文件与oleDbDataAdapter.Update(myDataSet)

我不断得到一个InvalidOperationException(“更新需要一个有效的UpdateCommand与修改后的行传递DataRow集合”)。 我只是不能解决更新命令有什么问题。 这是我迄今为止的代码: OleDbConnection connection; OleDbDataAdapter clientsAdapter new OleDbDataAdapter(); DataSet myDataSet = new DataSet(); public void Setup() { connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Clients.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES"";"; connection = new OleDbConnection(connectionString); connection.Open(); // SQL clientsAdapter.SelectCommand = new OleDbCommand("SELECT * FROM [Clients$]", connection); OleDbCommand updateCmd = new OleDbCommand( "UPDATE [Clients$] " + "SET " + "[Family Name] = […]

有没有办法改变使用C#的Excel单元格的颜色?

我正在处理一个ASP项目,我需要根据一些validation检查更改单元格的颜色,并将其返回给用户。 目前我已经成功地使用Excel 12.0 Object Library实现了这个function。 但问题是我需要提高性能。 InterOp库比我预期的要慢。 有什么办法可以不使用InterOp库格式化Excel工作表上的单元格。 (像连接使用OleDb连接和格式)? 请分享你的知识

在C#中的OleDbConnection

我已经编写了将数据插入到Excel表单中的代码。我的代码不会抛出任何exception,并且每次Excel文件的大小都会增加1KB。 但是当我打开表单时,它不显示任何数据。 我感到困惑,无法弄清楚这个问题。 请提前帮助和thanx … !!! string strSQL = string.Empty; excelConn.Open(); strSQL = "INSERT INTO [" + sheetName + "$] ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11]) VALUES(@value1, @value2, @value3, @value4, @value5,@value6, @value7, @value8, @value9 ,@value10, @value11)"; excelCommand = new OleDbCommand(strSQL, excelConn); excelCommand.Parameters.AddWithValue("@value1", Program); excelCommand.Parameters.AddWithValue("@value2", District); excelCommand.Parameters.AddWithValue("@value3", Period); excelCommand.Parameters.AddWithValue("@value4", paramValue1); excelCommand.Parameters.AddWithValue("@value5", paramValue2); excelCommand.Parameters.AddWithValue("@value6", paramValue3); excelCommand.Parameters.AddWithValue("@value7", BusinessLogic); excelCommand.Parameters.AddWithValue("@value8", ExpectedResult); excelCommand.Parameters.AddWithValue("@value9", ActualResult); excelCommand.Parameters.AddWithValue("@value10", […]

Excel将空白单元格保存为已使用的单元格

我试图在Excel中插入行与OLEDB,问题是: :我在我的工作表的末尾插入了几行。 :我打开我的Excel文档,看到我插入的行。 :我删除所有插入的行并重新启动我的应用程序。 :行继续插入最后一行索引 例如: 行插入行3020在Excel中 删除这一行并保存 重新启动应用程序并再次插入 行将在Excel中的第3021行 公共无效插入(string文本,Excel.Worksheet WS,string列){ OleDbCommand cmd1 = new OleDbCommand("INSERT INTO ["+ws.Name+"$] " + "([" + column + "]) VALUES(' " + text + " ')", _oleConn); cmd1.ExecuteNonQuery(); }