将Excel另存为CSV格式文件
直接将Excel另存为CSV,速度很快:
$CurrentPath = $MyInvocation.MyCommand.Path.substring(0,$MyInvocation.MyCommand.Path.LastIndexOf('\')+1) $NewADUserInfo_excel = Join-Path $CurrentPath NewADUserInfo_excel.xlsx $NewADUserInfo_csv = Join-Path $CurrentPath NewADUserInfo_csv.csv If (Test-Path $NewADUserInfo_csv) { write-host "$NewADUserInfo_csv 已存在,按任意键将退出,请删除该文件后再重新运行脚本" -ForegroundColor Red cmd /c "pause" exit } $Excel = New-Object -Com Excel.Application $Excel.visible = $False $Excel.displayalerts=$False $WorkBook = $Excel.Workbooks.Open($NewADUserInfo_excel) #保存为CSV格式,需要设置参数值为6 $Workbook.SaveAs($NewADUserInfo_csv,6) $Excel.quit() #重新保存CSV文件为UTF8格式,否则无法正常导入(不识别中文字符) $Temp_Info = gc $NewADUserInfo_csv Start-Sleep -Milliseconds 600 $Temp_Info| Set-Content $NewADUserInfo_csv -Encoding utf8 $aa=Import-Csv $NewADUserInfo_csv $aa Start-Sleep -Milliseconds 800 remove-item $NewADUserInfo_csv -force
csv包含中文的话,直接通过import-csv会报错,可以使用如下两种方法:
1) Import-CSV d:\a.csv -Encoding default
2) gc d:\a.csv | convertfrom-csv
逐行读取Excel,然后将其保存为CSV,效率很低:
#读取负载均衡信息表 $strpath="D:\My Documents\Work\IP映射表.xlsx" $excel=new-object -comobject excel.application $WorkBook = $excel.Workbooks.Open($strpath) $WorkSheet = $WorkBook.Worksheets.Item(1) #已用行数 $usedrows = $worksheet.usedrange.rows.count $Public_ip_maps_info = $Public_ip_maps_infos = $null $Public_ip_maps_infos = @() For($i=2;$i -le $usedrows;$i++) { $Public_ip_maps_info = ""|Select public_ip,internal_ip,is_vip $Public_ip_maps_info.public_ip = $WorkSheet.Cells.Item($i,2).value2 $Public_ip_maps_info.internal_ip = $WorkSheet.Cells.Item($i,3).value2 $Public_ip_maps_info.is_vip = $WorkSheet.Cells.Item($i,4).value2 $Public_ip_maps_infos += $Public_ip_maps_info } $Public_ip_maps_infos $excel.Quit() $WorkSheet =$null $WorkBook = $null $excel = $null [GC]::Collect()
将CSV另存为Excel,参考:
http://www.pstips.net/converting-csv-to-excel-file.html
分类:
PowerShell
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2014-06-26 右下角显示提示窗口(New-Object,COM)
2014-06-26 按任意键继续/退出
2013-06-26 PowerShell管理SCOM2007R2
2013-06-26 PowerShell管理SCOM_批量设置维护模式(上 )
2013-06-26 PowerShell管理SCOM_批量设置维护模式(下)
2013-06-26 导出AD用户所属组,查询AD用户(aduser)
2013-06-26 SQL脚本运行