Чтобы сохранить CSV, используя точку с запятой в качестве разделителя вместо запятой, попробуйте указать значение $true
для параметра local
для метода SaveAs
:
$ws.SaveAs($csvLoc + $n + ".csv",6, 0, 0, 0, 0, 0, 0, 0, $true)
вместо:
$ws.SaveAs($csvLoc + $n + ".csv",6)
Это выдержка из MSDN, объясняющая локальный параметр (подробнее здесь ):
Местный
Тип: System.Object
true сохраняет файлы на языке
Excel (включая настройки панели управления); false ( default ) сохраняет файлы
против языка Visual Basic для приложений (VBA).
Чтобы массово вставить ваши CSV-файлы в SQL Server (в этом примере мой CSV-файл имеет только 2 столбца):
IF OBJECT_ID('dbo.IMPORT_FROM_CSV') IS NOT NULL
DROP TABLE dbo.IMPORT_FROM_CSV
CREATE TABLE dbo.IMPORT_FROM_CSV (
[COL_1] [VARCHAR] (max) NULL,
[COL_2] [VARCHAR] (max) NULL
)
BULK INSERT dbo.IMPORT_FROM_CSV
FROM 'C:\test\new\test_Sheet1.csv'
WITH (
FIRSTROW = 2,
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)