9

我有一个 powershell 脚本,它打开一个 excel 文件,重新分配一个空白密码,然后保存文件。我想在脚本中添加一个任务,以在保存之前删除 excel 文件的前 4 行。

4

1 回答 1

10

您不能使用 OleDB 从 Excel 文档中删除数据。根据MSDN文档:

尽管 Jet OLE DB Provider 允许您在 Excel 工作簿中插入和更新记录,但它不允许 DELETE 操作

您可以做的是使用 Exel 的 COM 接口来删除行。记住也要释放 COM对象。像这样,

$file = c:\temp\MyExcelFile.xls
# Star Excel, hide window
$excel = new-object -com Excel.Application -Property @{Visible = $false} 
$workbook = $excel.Workbooks.Open($file) # Open the file
$sheet = $workbook.Sheets.Item(1) # Activate the first worksheet
[void]$sheet.Cells.Item(1, 1).EntireRow.Delete() # Delete the first row

$workbook.Close($true) # Close workbook and save changes
$excel.quit() # Quit Excel
[Runtime.Interopservices.Marshal]::ReleaseComObject($excel) # Release COM
于 2013-04-29T18:55:28.337 回答