Powershell을 사용하여 CSV로 처리하고 싶은 Excel 파일이 있습니다. CSV 정보를 처리 할 프로그램을위한 신뢰할 수있는 입력이 될 수 있도록 확실히 변경해야합니다. 정확한 헤더를 모르지만 중복이있을 수 있습니다. 는 내가하는 일은 엑셀과 XLSX 파일 열려 있고 CSV로 저장 :이름 바꾸기 및 구분 기호를 사용하여 Powershell로 xlsx에서 csv로 처리
$objExcel = New-Object -ComObject Excel.Application
$objExcel.Visible = $True
$objExcel.DisplayAlerts = $True
$Workbook = $objExcel.Workbooks.open($xlsx1)
$WorkSheet = $WorkBook.sheets.item($sheet)
$xlCSV = 6
$Workbook = $objExcel.Workbooks.open($xlsx2)
$WorkSheet = $WorkBook.sheets.item($sheet)
$WorkBook.SaveAs($csv2,$xlCSV)
는 이제, XLSX 파일 그래서 처음 난 점으로 변경하려면, 쉼표의있을 것이다. 나는이 시도했지만 제대로 동작하지 않습니다 :
$objRange = $worksheet.UsedRange
$objRange.Replace ",", "."
그것은 오류가 밖으로 말 : 예기치 않은 토큰 ' ","'.
그런 다음 절약 할 때 ";"를 사용하므로 구분 기호를 쉼표로 설정하고 싶습니다. 표준. 다음과 같이 입력하십시오 :
$WorkBook.SaveAs($csv2,$xlCSV) -delimiter ","
마지막 문제는 중복 된 헤더입니다. 이것은 PS가 Import-CSV를 사용하지 못하게합니다.
Get-Content $downloads\BBKS_DIR_AUTO_COMMA.csv -totalcount 1 >$downloads\Headers.txt
을하지만 그때 나는 레지오, 레지오, 레지오을 가질 수처럼 중복 된 이름 드의 이름을 변경해야합니다 파일이 작동 쉼표로 분리 될 때 나는 여기, 시도했다. 이것을 Regio, Regio2, Regio3로 변경하고 싶습니다.
내 계획은 txt의 데이터를 검색하고 중복을 검색 한 다음 증분 값을 광고하는 것이 었습니다.
결국에는 증분 숫자가있는 열을 추가해야하지만 항상 다음과 같은 네 개의 숫자가 필요합니다. 0001, 0002, 0010, 0020, 0200, 1500, 9999를 초과하지 않습니다. 어떻게 할 수 있습니까?
나를 도울 수 있다면 부분적으로 만 행복합니다. 또한 필자는 Windows 7 x64, PowerShell 3.0, Excel 2016 (관련이있을 경우)을 실행 중입니다. 더 쉽게 수행 할 수있는 경우 명령 프롬프트로 돌아가서 일부 작업을 수행하십시오. 개인적으로
여기에는 ';'구분 기호 (제목에서 식별 됨)와 헤더에 대해 다른 두 가지 질문이 있습니다. 이전의 경우 [기본 언어 설정] (http://stackoverflow.com/questions/13496686/how-to-save-semi-colon-delimited-csv-file-using-vba)은 무엇입니까? ';'로 설정되어 있습니까? 후자의 경우, 별도의 SO 질문을하십시오. 하나의 라이너가 아닌 광범위한 코딩이 필요합니다. – Parfait