所以这不是什么大不了的事,但由于谷歌没有返回任何关于它可能是 Excel 驱动程序问题的最新信息(主要是 2007 年左右)......我来这里是为了问这个问题,因为我发现的“答案”不是可以接受,无需进一步研究。
我的问题:
编写动态 OPENROWSET 查询清除并插入新数据以向特定用户发送报告 - 基本 excel 报告包含一些公式,其中它根据插入的数据计算和求和,并且乘法公式似乎工作正常,但除非总计在 Excel 中被正确格式化为“数字”而不是文本,总和将不起作用......
解决方案必须是基于自由格式的(如果有解决方案的话),我不想将我的所有代码都转移到 SSIS ......
更新/插入代码:
SELECT @sqlu = 'UPDATE OPENROWSET(' +
'''Microsoft.ACE.OLEDB.12.0'', ' +
'''Excel 12.0;Database=' + @File + ';HDR=YES'', ' +
'''SELECT * FROM [Base$B1:G601]'')
SET
col1 = '''', col2 = '''', col3 = '''', col4 = '''', col5 = '''', col6 = '''' '
EXEC (@sqlu)
SELECT @sqli = 'INSERT INTO OPENROWSET(' +
'''Microsoft.ACE.OLEDB.12.0'', ' +
'''Excel 12.0;Database=' + @File + ';HDR=NO'', ' +
'''SELECT * FROM [Base$B1:G2]'')
SELECT col1, col2, col3, col4, col5, col6
FROM [DATABASE].[dbo].tbl_CIM
WHERE col1 IN(''' + @area + ''')'
EXEC (@sqli)
第二个问题,现在可能不是问题,但稍后 - 在插入之后,它似乎在结果周围创建了边界。是否还有一种潜在的方法可以在结果传输期间删除它们?
如果是驱动程序问题,请提供任何帮助或研究资源,因为我找不到任何帮助或资源。