这是场景。我将循环访问数千个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