Excel을 CSV 형식 파일로 저장

6443 단어 Excel
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

좋은 웹페이지 즐겨찾기