我一直在努力导入我的.xlsx
文件一段时间,似乎无法弄清楚发生了什么。我按照我在其他SO帖子和其他教程中找到的所有步骤进行操作。
我现在有一个简单的.xlsx
文件:
这是代码我现在运行以获取文件并将其放入临时表:
IF OBJECT_ID('tempdb..#Compare') IS NOT NULL
DROP TABLE #Compare;
CREATE TABLE #Compare
(
Name VARCHAR(MAX)
,Lastname VARCHAR(MAX)
);
BULK INSERT #Compare
FROM 'C:\Users\Michael\Documents\Taquanta\TAQKANBAN - 44 - 3pm Compare\compare.xlsx'
WITH
(
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n'
)
GO
SELECT * FROM #Compare c
返回的结果不符合我的预期:(
结果:
请允许任何人让我知道我哪里出错了?
答案 0 :(得分:0)
我已经多次使用PowerShell完成了这项工作。您可以调整以下内容。
$filename = "C:\Users\Michael\Documents\Taquanta\TAQKANBAN - 44 - 3pm Compare\compare.xlsx";
$ExcelConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='$filename';Extended Properties='Excel 12.0 Xml;HDR=YES';"
$ExcelConn = New-Object System.Data.OleDb.OleDbConnection($ExcelConnStr);
$ExcelConn.Open();
$ExcelCommand = New-Object System.Data.OleDb.OleDbCommand("SELECT * FROM [Sheet1`$a5:ae]" ,$ExcelConn);
$adpt = New-Object System.Data.OleDb.OleDbDataAdapter;
$adpt.SelectCommand = $ExcelCommand;
$dt = New-Object System.Data.DataTable;
[void]$adpt.Fill($dt);
$SQLConnStr = "Server=XXXXX;Database=XXXXX;Trusted_Connection=True;";
$SQLBulkCopy = New-Object System.Data.SqlClient.SqlBulkCopy($SQLConnStr);
$SQLBulkCopy.DestinationTableName = "dbo.TableName"
$SQLBulkCopy.WriteToServer($dt);
$SQLBulkCopy.Close();