由于某种原因,我无法找到 Excel Sheet1。 这是我的代码:
filename = 'ALC_2022068_06282024-testing copy.xlsx'
sql = r"""INSERT INTO tblALC_test ([dateofnotice], [provnbr])
SELECT e.[dateofnotice], e.[provnbr]
FROM [Excel 12.0 Xml;HDR=Yes;Database={xl}].[Sheet1$] AS e;
""".format(xl=filename)
conn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};' +
r'DBQ=F:\Kevin\CPD_Night\ALC_Testing.accdb;')
cursor = conn.cursor()
cursor.execute(sql)
cursor.commit()
cursor.close()
conn.close()
代码似乎找到了 MS Access DB 并找到了 MS Excel 文件,但找不到选项卡:Sheet1。
这是我应该添加到行中的语法还是其他功能吗?
您在 SQL 语句中格式化 Excel 文件的连接字符串的方式似乎可能存在问题。在 sql 变量中,您使用 .format() 插入文件名,但没有正确转义大括号。这是代码的更新版本,具有正确的转义和格式: 在此输入图片描述
对 sql 变量使用 f 字符串 (f""" ... """) 来直接插入文件名。 使用三重大括号 ({{{filename}}}) 对数据库参数中的大括号进行转义,以确保大括号在 SQL 字符串中得到正确解释。 确保 Excel 文件中的工作表名称确实是“Sheet1”,而不是其他名称(例如带有空格的“Sheet1 ”或“Sheet1$”)。如果sheet名称不同,请在SQL语句中进行相应更新。