@trapepaul

Как импортировать данные из Excel в MS SQL через Powershell?

При импорте данных из Excel в MS SQL через Powershell, текстовое поле воспринимается как числовое из-за первых числовых значений?
Почти в 100% случаев первые данные без символов, из-за чего видимо Powershell преобразует колонку во временной таблице в числовую, и все данные где есть хоть 1 символ теряются. Есть ли адекватный способ не трогая начальные файлы обойти этот баг?
Или проще отказаться от использования Powershell для этой задачи?

Например в екселе формат колонки "Общий", в нем содержатся данные типа:
1000000
1243596
4466777
5436FT9
2454A00
24ДА355

Вот кусок кода в котором это происходит:

$Folderpath = '\\Путь_до_файла'
Get-ChildItem -Path $Folderpath -Force | ?{$_.NAME -like "*.xlsx" } | %{
foreach ($FilePath in $_.FullName)
{

    $FilePath = $_.FullName
    $connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=`"$filepath`";Extended Properties=`"Excel 12.0 Xml;HDR=YES;IMEX=1`";"
    $conn = new-object System.Data.OleDb.OleDbConnection($connString)
    $conn.open()
    $qry = 'select [Код] from [Лист1$]'
    $cmd = new-object System.Data.OleDb.OleDbCommand($qry,$conn)
    $da = new-object System.Data.OleDb.OleDbDataAdapter($cmd)
    $dt = new-object System.Data.dataTable
    [void]$da.fill($dt) 
....
  • Вопрос задан
  • 441 просмотр
Решения вопроса 1
@MaxKozlov Куратор тега PowerShell
Powershell сам никуда ничего не преобразовывает,
Что ему отдаёт .Net - то и показывает
с теми данными что вы показали у меня никто никуда ничего не меняет.
Если кто-то и может менять, то драйвер экселя
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы