Сценарий Powershell для настройки многопользовательского редактирования в Excel для многочисленных файлов? - PullRequest
0 голосов
/ 21 ноября 2018

Я написал код, который пытается пройти через сервер моей компании и установить все файлы Excel в определенной папке для общего доступа, чтобы несколько человек могли редактировать их одновременно.Это было проблемой в течение очень долгого времени, и я подумал, что у меня есть хороший код, чтобы исправить это, но я не могу получить доступ к свойству правильно.Кто-нибудь может помочь?

$ErrorActionPreference = "Stop"

$root = "P:\A N G"

$excelFiles = Get-ChildItem -path $root -File "*.xlsx" -Recurse 

foreach ($excelFile in $excelFiles.FullName)
{
    $excel = New-Object -ComObject Excel.Application
    $excelWorkBook  = $excel.Workbooks.Open($excelFile) 

    if (!$excelWorkBook.MultiUserEditing)
    { 
        Write-Host   $excelFile     
        $excelWorkBook._SaveAs([Microsoft.Office.Interop.Excel.XlSaveAsAccessMode]::xlShared)
        $excelWorkBook.Close
    }
}

1 Ответ

0 голосов
/ 21 ноября 2018

С некоторой помощью друга мне удалось найти решение.

$ErrorActionPreference = "Stop"

$root = "P:\A N G"

$excelFiles = Get-ChildItem -path $root -File "*.xlsx" -Recurse 

foreach ($excelFile in $excelFiles.FullName)
{
    $excel = New-Object -ComObject Excel.Application
    $excelWorkBook  = $excel.Workbooks.Open($excelFile) 

    if (!$excelWorkBook.MultiUserEditing)
    { 
        Write-Host $excelWorkBook.FullName   
        $accessMode = [Microsoft.Office.Interop.Excel.XlSaveAsAccessMode]::xlShared
        $xlFixedFormat = [Microsoft.Office.Interop.Excel.XlFileFormat]::xlWorkbookDefault
        $excelWorkBook.SaveAs($excelWorkBook.FullName,$xlFixedFormat,$null,$null,$null,$null,$accessMode,$null,$null,$null,$null,$null)
        $excelWorkBook.Close
    }
}

[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...