![如何使用 ODBC 文件源 (.DSN) 导出到具有定义位置但没有定义文件名的 Excel,并调出“选择工作簿”](https://linux22.com/image/1516124/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20ODBC%20%E6%96%87%E4%BB%B6%E6%BA%90%20(.DSN)%20%E5%AF%BC%E5%87%BA%E5%88%B0%E5%85%B7%E6%9C%89%E5%AE%9A%E4%B9%89%E4%BD%8D%E7%BD%AE%E4%BD%86%E6%B2%A1%E6%9C%89%E5%AE%9A%E4%B9%89%E6%96%87%E4%BB%B6%E5%90%8D%E7%9A%84%20Excel%EF%BC%8C%E5%B9%B6%E8%B0%83%E5%87%BA%E2%80%9C%E9%80%89%E6%8B%A9%E5%B7%A5%E4%BD%9C%E7%B0%BF%E2%80%9D.png)
我如何设置 DSN 来指向特定位置,然后允许我选择文件而不是写入特定文件。
[ODBC]
DRIVER=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)
UID=admin
UserCommitSync=Yes
Threads=3
SafeTransactions=0
ReadOnly=0
PageTimeout=5
MaxScanRows=8
MaxBufferSize=2048
FIL=excel 12.0
DriverId=1046
DefaultDir=Drive:\exportdirectory
DBQ=Drive:\exportdirectory\file.xlsx
以下内容将写入 \exportdirectory\file.xlsx
如果我使用以下任何一种
DefaultDir=Drive:\exportdirectory\*xls*
(no DBQ)
DefaultDir=Drive:\exportdirectory\*
(no DBQ)
DefaultDir=Drive:\exportdirectory
DBQ=Drive:\exportdirectory\*xls*
DefaultDir=Drive:\exportdirectory
DBQ=Drive:\exportdirectory\*
DefaultDir=Drive:\exportdirectory
DBQ=*.xls*
我得到了期望的行为,但这有点像黑客行为:在出现错误消息之后(尝试写入文件“.xls并且失败)它会在默认目录中显示“选择工作簿”。
省略 DBQ 只会写入默认目录中的文件“.xls”,DBQ=* 也是如此