ODBC 驱动程序无法读取 Excel 中添加的行

i486

xls/xlsx使用 ODBC(带有Provider=Microsoft.ACE.OLEDB.12.0从 C#创建文件结果表有 4 行(例如)。我用 Excel 打开文件,添加第 5 行并保存文件。当尝试通过 ODBC 从 C# 读取它时,SELECT * FROM [table]我只得到原始的 4 行而没有第 5 行。似乎 ODBC 将行数存储在 XLS 文件中的某处,然后在没有从 Excel 或 LibreOffice 输入新数据的情况下只读取它们。这是已知问题吗,我可以解决吗?如果我在 Excel 中创建新电子表格,它的所有行都是从 C# 读取的。

编辑:我发现了一些有用的信息。第一次从 C#/ODBC 创建 XLS 文件时,有 2 个表(工作表)。如果表名是 TABLE,DataTable sheets = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null)则将包含sheets.Rows[0]== "TABLE" 和sheets.Rows[1]== "TABLE$"。Excel 将只显示一张“表格”。编辑后更改(第 5 行)仅存在于“TABLE$”表中。

i486

我想我发现了问题。Excel 创建的内部电子表格名称的末尾似乎有“$”符号。ODBC 生成的工作表名称是CREATE TABLE. 另一方面,Excel(和 LibreOffice)只显示一个工作表TABLE和工作TABLE$表。如果我在 Excel 中编辑表格,保存后更改仅在TABLE$. 另一张纸TABLE没有变化。当我这样做时SELECT * FROM [TABLE],结果来自没有 Excel 更改的原始 ODBC 生成表。现在我枚举 XLS 文件中的可用工作表,如果第一个工作表名称不以“$”结尾并且工作表大于 1,我将“$”添加到第一个工作表名称并打开正确的表格。我想 ODBC 连接字符串可能包含使用“$”结尾的表的选项...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法在Apache Ignite中安装ODBC驱动程序C ++

VBA,Excel ODBC驱动程序-对单元格中的参数使用sql查询时,类型不匹配错误

无法加载Instantclient_12_2 ODBC驱动程序中的Oracle

无法在Linux上使用alexbrainman / odbc连接到Go中的第三方ODBC驱动程序

在Alpine Linux Docker容器中安装ODBC驱动程序

在Selenium Web驱动程序中从Excel读取数据时,程序终止

ODBC Excel驱动程序SQL将多个外部ID映射到同一表

错误 [42000] [Microsoft][ODBC Excel 驱动程序] 语法错误(缺少运算符)

PHP 5.5和MSSQL驱动程序:在Windows Server 2012 R2中安装ODBC驱动程序11

Windows上的ODBC驱动程序无法加载

无法打开lib ODBC驱动程序17 OSX

PHP警告:odbc_connect():SQL错误:[unixODBC] [驱动程序管理器]无法打开lib。在PHP中与Snowflake的连接无法正常工作,但与isql的连接却正常

双击ODBC数据源管理员中的ms访问驱动程序时出错

如何在 Docker/Alpine 中安装 MariaDB ODBC 驱动程序

如何在18.04中为MYSQL和PostgreSQL安装和配置最新的ODBC驱动程序

Access ODBC中的“找不到数据源名称且未指定默认驱动程序”

如何在 PHP 7+ 中为 SQL Server 启用 ODBC 驱动程序 17?

您可以在 Powershell 中更改 ODBC DSN 驱动程序吗?

ODBC驱动程序的驱动程序之间的差异

unixODBC + ODBC驱动程序13

JDBC ODBC驱动程序连接

Laravel Config ODBC驱动程序

Java ODBC Ms访问驱动程序

Windows 7 ODBC文本驱动程序

在Ubuntu下安装ODBC驱动程序

Snowflake ODBC 驱动程序与 SQL API

Java:无法使用JDBC ODBC更新Excel

SQL Server的Microsoft ODBC驱动程序11:无法加载指定的驱动程序(msodbcsql11.dll)

PostgreSQL连接字符串,带有C#中的ODBC驱动程序,不支持关键字:驱动程序