You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Automate将SFTP的CSV转SharePoint XLSX失败求助

解决Power Automate中CSV转XLSX无法打开的问题

以下是几个可行的解决方案,针对你遇到的“生成XLSX无法打开”问题:

方案一:用Excel Online直接转换CSV到XLSX

  • 先将SFTP获取的CSV文件保存到SharePoint的临时目录(如Documents/CSV_Temp)
  • 添加Excel Online (Business) - 转换文件动作,选择刚才的CSV文件,目标格式指定为XLSX
  • 最后用SharePoint - 创建文件或更新文件,将转换后的XLSX存到目标位置

核心:必须先把CSV放到SharePoint/OneDrive,Excel Online才能识别并完成格式转换

方案二:用Office Script直接生成XLSX

  • 通过SFTP动作的获取文件内容,拿到CSV的文本内容
  • 在SharePoint提前准备一个空白XLSX模板文件(如Template.xlsx)
  • 添加Excel Online (Business) - 运行脚本动作,选择模板文件,传入CSV内容作为参数
  • 参考Office Script代码:
function main(workbook: ExcelScript.Workbook, csvContent: string) {
  const rows = csvContent.split('\n').filter(row => row.trim() !== '');
  if (rows.length === 0) return;

  const sheet = workbook.getWorksheets()[0];
  sheet.getUsedRange()?.clear(ExcelScript.ClearApplyTo.all);

  // 根据你的CSV分隔符调整,比如分号就换成';'
  rows.forEach((row, rowIndex) => {
    const cells = row.split(',');
    sheet.getRangeByIndexes(rowIndex, 0, 1, cells.length).setValues([cells]);
  });
}
  • 用SharePoint - 另存为文件将修改后的模板存为目标XLSX文件

方案三:两步转换(XLS转XLSX)的可行实现

  • 先完成你已实现的步骤:将CSV转成XLS并保存到SharePoint
  • 添加Excel Online (Business) - 打开工作簿动作,选择这个XLS文件
  • 再添加Excel Online (Business) - 保存工作簿动作,选择保存为XLSX格式,指定目标路径

此方法依赖Excel Online的原生格式转换能力,避免直接修改扩展名导致的文件损坏

关键注意事项

  • 绝对不要直接修改文件扩展名(如把.csv改成.xlsx),这种操作只是修改文件名,文件本质还是CSV,必然无法打开
  • 确保Excel Online拥有SharePoint站点和SFTP文件的访问权限
  • 若CSV使用特殊分隔符(如分号、制表符),需在转换动作或脚本中对应调整拆分规则

内容的提问来源于stack exchange,提问作者RustyMc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 14:20:21