Выберите прерывистый диапазон ячеек при конвертации Excel в CSV с помощью Powershell - PullRequest
0 голосов
/ 30 апреля 2020

Мое требование - прочитать файл Excel, скопировать его в другое место и преобразовать в формат CSV для дальнейшего использования Azure Фабрика данных - Операция копирования. Проблема в том, что данные в Excel присутствуют в прерывистых ячейках (то есть от A1: V: 1800 и затем до AB1: AQ1800). Я создал ниже сценарий PowerShell, он не читает данные в прерывистых ячейках, но читает весь Excel. Помогите, пожалуйста, в корректировке выбрать только указанный диапазон значений c. Сценарий приведен ниже:

 $OriginFile = "\\aaaa\share3\Test\MasterCalendar DASH.xlsx"
    $SourceFile = "C:\Users\vermarachna\Documents\Rachna\17.Load 
 Radiotherapy\25Apr2020\Development\MasterCalendar DASH.xlsx"
    $sCSVFile = "C:\Users\vermarachna\Documents\Rachna\17.Load Radiotherapy\25Apr2020\Development\MasterCalendar DASH.csv"
    $OrigFileExists = Test-Path $OriginFile
    $CSVFileExists = Test-Path $sCSVFile

    If ($OrigFileExists -eq $True)
    {      
        # Copy latest excel file to Source Location
        Copy-item –path $OriginFile –destination $SourceFile -Force

        if ($CSVFileExists -eq $True)
        {
            Remove-item -path $sCSVFile
        }

        # Convert excel file to CSV format
        # Get COM Object
        $Excel = New-Object -ComObject "Excel.Application"
        $ExcelWkbook = $Excel.Workbooks.Open($SourceFile)
        $ExcelWksheet = $ExcelWkbook.Worksheets.item(1)
        $DataColmns = $ExcelWksheet.Range("A1:V1793")
        $XLcsv = 6
        $DataColmns.worksheet.SaveAs($sCSVFile ,$XLcsv)
        $ExcelWkbook.Close($True)
        $Excel.Quit()
    } 
    Else
    {
        Exit
    } 

Кроме того, прямо сейчас в Excel есть данные до строки № 1800, которые в будущем увеличатся, как я могу сделать номер строки динамическим c в приведенном выше сценарии, чтобы все строки которые имеют данные собраны.

...