Export-Excel возвращает нечитаемые результаты при извлечении данных из Access - PullRequest
0 голосов
/ 12 октября 2018

Я использую модуль Export-Excel для создания файла сопоставления для переноса базы данных.Два источника данных:

  1. Доступ (источник)
  2. SQL Server (назначение)

Когда я извлекаю данные из SQL-сервера и отправляю их вExport-Excel все хорошо.Когда я использую данные из Access, они оказываются нечитаемыми, т.е.*

Вот код, который я использую для извлечения данных и их экспорта в Excel:

Function Get-AccessData {
    param ($sql)

    Try {

        #Connection
        $Connection = New-Object -TypeName System.Data.OleDb.OleDbConnection

        #Connection string
        $Connection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= $($Settings.Files.access)"

        #create command and fill dataset
        $ConCommand = $Connection.CreateCommand()
        $ConCommand.CommandText = $SQL
        $OAdapt = New-Object -TypeName System.Data.OleDb.OleDbDataAdapter $ConCommand
        $DS     = New-Object -TypeName System.Data.DataSet
        $OAdapt.Fill($DS) | out-null

        return $DS
    }
    Catch {

        Set-Output "[!] Access database connection failed" -colour RED -logfilepath $log_prerequisites
        Set-Output "    Ensure that Microsoft.ACE.OLEDB.12.0 provider is installed" -colour RED -logfilepath $log_prerequisites
        Set-Output "$_" -logfilepath $log_prerequisites
        break
    }
}
((Get-AccessData -sql "SELECT DISTINCT positionfrom JobOrder").tables | format-table)


$JobTypes | Export-Excel $mFile_JobType -Autosize -FreezeTopRow -BoldTopRow -WorkSheetName "Job Types" -show

1 Ответ

0 голосов
/ 12 октября 2018

Удалить format-table от следующей до последней строки.В PowerShell каждый раз, когда вы используете функцию format-*, вы в основном говорите: «Меня больше не волнует это как объект, дайте мне простой текст в определенном формате» (в данном случае табличный).

Но Export-Excel ожидает объектов данных , а не простой текст.Так что накорми это.

(Get-AccessData -sql "SELECT DISTINCT positionfrom JobOrder").tables | Export-Excel $mFile_JobType -Autosize -FreezeTopRow -BoldTopRow -WorkSheetName "Job Types" -show
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...