Tag: aceoledb

ACE Oledb 12.0和XLSX问题

我使用下面的代码来设置具有Office 2007,SQL Server 2008的本地PC上的连接string: string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + MapPath(Request.ApplicationPath) + "\\" + excelFolderName + fileName + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\""; 我的操作系统是Windows 7(64位),我可以读取XLS和XLSX文件没有任何问题。 我已经将我的项目发布到MS Server 2003 R2标准版X64中,并遇到一些问题,因为我没有安装ACE OLEDB 12.0 ,所以我安装了“Microsoft Access数据库引擎2010可再发行组件”,我无法读取XLS文件。 当我尝试打开XLSX (使用Office 2007创build的)时出现问题,因为出现此错误: 外部表格不是预期的格式 我究竟做错了什么? 我不想安装以前的“Microsoft Access数据库引擎2007年可再发行组件”,因为它只有一个32位版本,迫使我build立我的项目为32位… 提前致谢

如何使用ACE OLEDB提供程序在64位操作系统中读取Excel文件?

我有一个ac#应用程序,我已经转移到一个64位机器。 此应用程序读取一个Excel文件的一些数据input。 我想build立这个项目为64位。 有什么办法让我的程序在这个文件中读取? 我发现很难相信,没有办法使用Excel文件作为input到64位应用程序。 我已经安装了Office 2010 64位以及2010 Office System Driver Beta:数据连接组件,但没有运气。 我敢肯定,我只是错过了一些非常简单的事情。 我的应用程序完全适用于.xls和.xlsx文件的32位环境。 使用64位只能使用.xls而不使用.xlsx。 下面的代码抛出exception,指定的方法不支持(当我试图打开与64位环境xlsx连接)。 例外: <Exception> <Description>An exception of type 'System.NotSupportedException' occurred and was caught.</Description> <DateTime>2012-10-12 17:53:53Z</DateTime> <ExceptionType>System.NotSupportedException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType> <Message>Specified method is not supported.</Message> <Source>ExcelHelper</Source> <HelpLink /> <Property name="Data">System.Collections.ListDictionaryInternal</Property> <Property name="TargetSite">System.Data.OleDb.OleDbConnection GetConnection(System.String)</Property> <StackTrace> at ExcelOperations.ExcelHelper.GetConnection(String excelFile) at ExcelOperations.ExcelHelper.GetExcelSheetDataSet(String excelFile, String […]

用于查询Excel数据表的替代ACE.OLEDB.12

我目前使用ACE.OLEDB.12查询Excel数据表,我遇到了令人沮丧的供应商的限制。 提供程序只能解决前256列和65536行问题,所以如果我将任何数据表定位在该窗口之外,则引擎会返回未find范围的错误消息。 有谁知道任何其他的数据提供者,将允许我直接从数据表中查询数据,如下面的例子使用ACE.OLEDB.12 ? SELECT * FROM [Main Sheet$IG7:IU9]

Excel ACE.OLEDB:查询中的COUNTIF等效项

我在ACE.OLEDB中开发了以下Microsoft Query: SELECT Name, Country (SELECT COUNT(*) FROM Table1 as T1 WHERE Name = T.Name AND Country = T.Country AND Description="Work" GROUP BY Name, Country) / COUNT(*) FROM Table1 as T GROUP BY Name, Country 查询工作正常,但它永远持续在Excel中执行超过90klogging。 是否有可能通过使用COUNTIF等效来优化此查询? 我的形象查询可以优化,如果它像这样工作: SELECT Name, Country, COUNTIF(CASE WHEN Description="Work" THEN 1 ELSE 0 END) / COUNT(*) FROM Table1 as T […]

从Excel获取特定的列(ACE OLEDB)

我正在使用ACE OLEDB将一个Excel文件加载到一个DataTable中。 我有我需要从文件(列名称)抓取列的列表。 问题是我找不到任何工作来源如何只从Excel中的特定列到DataTable。

当有166,110行时,Microsoft ACE OLEDB连接创build空的Excel

我在C#中编程并使用oledbconnection 。 这是标准的连接string,例如 using (OleDbConnection conn = new OleDbConnection( "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + saveFilenameAndLocation + ";Extended Properties='Excel 12.0 Xml;HDR=Yes'" )) 这个工作成功,并创build我的Excel电子表格充满了正确的数据,当行数不是过多。 但是,只要电子表格中的行数增加到较大(例如,当前在166,110行上失败),它就会生成一个空的电子表格,并将工作表选项卡名称设置为A266FF2A662E84b639DA 。 这是不可能重写这个,所以它不使用OLEDB连接,任何想法,为什么它行不行时,行大小增加?

通过ACE.OLEDB的Excel单元格格式

我有以下代码,我更新Excel文件中的单元格,但不符合我在单元格中的格式: string cad = @" Provider=Microsoft.ACE.OLEDB.12.0;" + @"Data Source=" + Server.MapPath("~/SVG/" + filenameexport + ".xlsx;") + @"Extended Properties=" + '"' + "Excel 12.0 Xml;HDR=NO" + '"'; try { using (OleDbConnection con = new OleDbConnection(cad)) { con.Open(); string query = @"UPDATE [Cost Planning$] SET F9= ? WHERE F1 = 'Category'"; using (OleDbCommand cmd = new OleDbCommand(query, […]

两个程序试图读取一个成功的人失败,相同的代码

我有两个彼此不相关的程序,但他们有一个相同的方法,他们尝试从Excel文件中读取行。 计划1 public DataTable GetExcelInfo(string filepath) { DataTable datatab = new DataTable(); try { string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=1;ImportMixedTypes=Text\\"; using (OleDbConnection conn = new OleDbConnection(connectionString)) { conn.Open(); OleDbCommand cmd = new OleDbCommand("SELECT Format([F1], \"#\"), Format([F2], \"#\"), Format([F3], \"#\") FROM [Sheet1$]", conn); OleDbDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { string[] values […]

“Microsoft.ACE.OLEDB.16.0”提供程序未在本地计算机上注册。 (System.Data)

当我尝试通过MSSQL服务器数据导入,即SSIS包连接到任何Excel时,出现此错误“Microsoft.ACE.OLEDB.16.0”提供程序未在本地计算机上注册。 (System.Data)这是不一样的版本,我认为需要一些其他的修补程序