如何将Excel中的一个工作表导出到单个htm文件?

我无法将一个工作表从Excel工作簿保存为一个.htm文件。

我知道如果我打开Excel,打开我的工作簿,select我想要的工作表,并执行“另存为”文件types.htm它将工作。 每次我编写代码时,我会得到“Hitlist.htm”以及一个名为“Hitlist_files”的文件夹,所有的样式表等。不幸的是,在powershell中,它与所有其他数据和补充文件(额外的文件夹,造型规格等)

帮帮我。 下面的代码。

#Create and get my Excel Obj $excel = New-Object -comobject Excel.Application $excel.visible=$false $excel.DisplayAlerts=$false $UserWorkBook = $excel.Workbooks.Open("e:\hitlist\hitlist.xlsx") #Select first Sheet $UserWorksheet = $UserWorkBook.Worksheets.Item(1) #HitList File name and type $hitlist = "E:\HitList\Hitlist.htm" $xlHtml = 44 #Save, close, and clean up #I tried this too...no go - $UserWorkBook.SaveAs($hitlist,$xlHtml) $UserWorksheet.SaveAs($hitlist,$xlHtml) $UserWorkBook.close() $excel.quit() $excel = $null 

在我们澄清了一些之后,我已经将您的代码再次调整到您的期望。 特别是,看看任何用#changed-grav表示的行来修改你现有的代码,或者用最后一个( #added-grav )来添加一些额外的步骤,以适应确切的规范:

(这已经完全testing了,而且看起来完全按照你的要求工作 – 但是我为我的testing做了一些修改,所以让我知道如果我没有改变你需要的价值)

 #Create and get my Excel Obj $excel = New-Object -comobject Excel.Application $excel.visible=$false $excel.DisplayAlerts=$false $UserWorkBook = $excel.Workbooks.Open("e:\hitlist\hitlist.xlsx") #Select first Sheet $UserWorksheet = $UserWorkBook.Worksheets.Item(1) #HitList File name and type $hitlistCSV = "e:\hitlist\hitlist.csv" #changed-grav $hitlistHTML = "e:\hitlist\hitlist.htm" #changed-grav $xlCSV = 6 #changed-grav #Save, close, and clean up $UserWorksheet.SaveAs($hitlistCSV,$xlCSV) #changed-grav $UserWorkBook.close() $excel.quit() $excel = $null #new functionality, to import the CSV and then export as HTM #added-grav START $htmlData = Get-Content $hitlistCSV | ConvertFrom-CSV | ConvertTo-HTML Set-Content $hitlistHTML $htmlData Remove-Item $hitlistCSV #added-grav END