在Excel(Powershell)中以列数据格式= TEXT强制打开CSV

时间:2018-11-19 13:46:24

标签: excel powershell csv formatting

我有这个使用Export-CSV生成的CSV文件。一切都很好,但是在Excel中打开时会显示如下,因为单元格的格式未设置为TEXT:enter image description here

我想像所有界面一样手动打开所有单元格都设置为TEXT的CSV。

enter image description here

是否可以使用PowerShell自动执行此操作,在Excel中以格式设置为文本格式的单元格打开CSV?

2 个答案:

答案 0 :(得分:1)

您可以使用一个小技巧-将数据转换为html,然后以“ xls”扩展名保存。例如:

Get-Process | convertto-html | Out-File csv2.xls

打开它时,您会看到一条警告,只需单击“确定”即可。

您可以通过在注册表中添加额外的密钥来禁止显示该警告消息:

打开注册表编辑器

HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 15.0 \ Excel \ Security

使用名称ExtensionHardening和值0创建一个新的DWORD

答案 1 :(得分:1)

找到了实现这一目标的好方法!

生成CSV文件后,以下是如何使用AutoFit列宽和TEXT格式自动将其加载到Excel中的方法:):

$Fichier = "PATH_TO_CSV.csv"
$objExcel = New-Object -ComObject Excel.Application
$WorkBook = $objExcel.Workbooks.Open($Fichier)
$WorkSheet = $WorkBook.worksheets.item(1)

$objExcel.Visible = $true

$Range = $worksheet.UsedRange.Cells
$range.NumberFormat = "@"

$WorkSheet.Columns("A:B").AutoFit()