這是場景。我將循環訪問數千個Excel文件,並將信息拔出並插入到SQL數據庫中。到目前爲止,我可以循環遍歷所有文件並將特定單元吐出到控制檯。我也可以在SQL插入語句中插入一個靜態值。我遇到的問題是在SQL插入查詢中使用輸出到PowerShell控制檯的相同單元。我猜這只是一個語法錯誤。如何在使用PowerShell的SQL查詢中使用Excel單元格?
這是有趣的一點。我試過單引號,沒有引號,全是雙引號。
$cmd.CommandText ="INSERT INTO QuoteData (QuoteNumber) VALUES ($WorkSheet.Range("B8").Text)"
我認爲如果你運行'$ WorkSheet.Range (「B8」).Text'自己獲得該單元格的值作爲輸出。所以一個快速的解決方法是首先將該值保存到一個新變量$ cellValue = $ WorkSheet.Range(「B8」).text;'然後在你的SQL命令中使用該變量$ cmd.CommandText =「INSERT INTO QuoteData(QuoteNumber)VALUES'$ cellValue'「;'注意我還在變量周圍添加了單引號。 – gpunktschmitz
這聽起來像一個ETL過程。您是否考慮過[SSIS](https://docs.microsoft.com/zh-cn/sql/integration-services/sql-server-integration-services)? – vonPryz
感謝gpunktschmitz,把它放在一個新變量中確實有效。理想情況下,儘管我想弄清楚如何讓它在沒有變量的情況下工作。 VonPryz,我從來沒有用過它,但我會研究它。這個項目的一部分是一個學習經驗,所以知道如何做到這一點將是有益的。 – Zach