【发布时间】:2022-01-01 07:44:25
【问题描述】:
背景
我正在编写一个 PowerShell 脚本来将一些数据写入 Excel 文件 (.xlsx),其中 Microsoft.ACE.OLEDB 如下所示:
$fileName = "C:\tmp\createtest.xlsx"
$sheetName = "record"
$provider = "Provider=Microsoft.ACE.OLEDB.12.0"
$dataSource = "Data Source = $fileName"
$extend = "Extended Properties=Excel 12.0"
$ddlSQL = "CREATE TABLE [$sheetName] (ID CHAR(4), NAME VARCHAR(20))"
$conn = New-Object System.Data.OleDb.OleDbConnection("$provider;$dataSource;$extend")
$sqlCommand = New-Object System.Data.OleDb.OleDbCommand
$sqlCommand.Connection = $conn
$conn.open()
$sqlCommand.CommandText = $ddlSQL
$sqlCommand.ExecuteNonQuery()
...
$conn.close()
问题
当您使用名为 record 的空工作表手动创建 C:\tmp\createtest.xlsx 时,CREATE TABLE 语句会自动创建 record1 工作表。
我想停止这种行为,让CREATE TABLE语句像普通RDBMS一样抛出异常。
问题
当 Excel 文件有同名工作表时,有什么方法可以阻止 OLEDB 自动创建 (sheet name)1 工作表?
【问题讨论】:
-
也许先做
"DROP TABLE [$sheetName]"?
标签: excel powershell oledb create-table