我的公司收到康卡斯特的每日CDR报告,我正试图以自动化的方式将这些数据输入我们的数据库。不幸的是,康卡斯特建议,有0%的机会,他们给我们一个CSV或XLSX或任何不是XLSM。对于某些上下文,Comcast的CDR报告是几个表,但我只需要来自sheet1 (称为All CDR)的数据,而且Sheet1中没有宏。
所以,我整个星期都在寻找解决办法。在测试期间,我能够让这段代码正常工作:
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Macro;
Database=\\\fileserver\Comcast.xlsm;IMEX=1;HDR=YES','select * from [All CDR$]')注:这只读取数据,我将把它变成一个插入语句一旦工作。
但我发现,只有打开和保存文件时,此代码才能工作。也就是说,我必须打开文件,启用内容,然后Excel问:“要使这个文件成为受信任的文档吗?”我单击“是”,然后保存并退出。那么密码起作用了。
那么,我该如何解决康卡斯特提供的这个可怕的问题呢?我拥有以及SQL Server和其他标准业务工具。我尝试使用power自动读取excel文件,但这失败了,因为Sharepoint无法识别XLSM文件,只有XLSX。我想使用power自动打开Excel文件,保存它并关闭它,但我认为这是不可能的。提前感谢
发布于 2022-01-20 22:20:54
如果找不到更好的方法,那么可以使用Office脚本来完成。它可能起作用,也可能不起作用,因为你需要它,但你可以通过它。
如果您进入将在PowerAutomate中运行脚本的用户下的Excel (任何工作簿),则应该在名为Automate的带中有一个选项。
找到它并创建一个名为.的新脚本,从工作表获取所有数据

把这些代码粘贴到..。
function main(workbook: ExcelScript.Workbook, worksheetName: string)
{
let worksheet = workbook.getWorksheet(worksheetName);
let usedRange = worksheet.getUsedRange(true);
return usedRange.getValues();
}现在,您可以使用PowerAutomate下的Run script操作从Excel Online (Business)调用它.
动作

结果

JSON反应
[
[
"Header 1",
"Header 2",
"Header 3",
"Header 4",
"Header 5",
"Header 6",
"Header 7"
],
[
"21",
"22",
"23",
"24",
"25",
"26",
"27"
],
[
"31",
"32",
"33",
"34",
"35",
"36",
"37"
],
[
"41",
"42",
"43",
"44",
"45",
"46",
"47"
],
[
"51",
"52",
"53",
"54",
"55",
"56",
"57"
],
[
"61",
"62",
"63",
"64",
"65",
"66",
"67"
],
[
"71",
"72",
"73",
"74",
"75",
"76",
"77"
],
[
"81",
"82",
"83",
"84",
"85",
"86",
"87"
],
[
"91",
"92",
"93",
"94",
"95",
"96",
"97"
],
[
"101",
"102",
"103",
"104",
"105",
"106",
"107"
],
[
"111",
"112",
"113",
"114",
"115",
"116",
"117"
]
]从那里,你可以做你需要的数据。
https://stackoverflow.com/questions/70793814
复制相似问题