【问题标题】:Power Automate Desktop - Copy Specific ColumnsPower Automate Desktop - 复制特定列
【发布时间】:2022-12-04 06:59:33
【问题描述】:

你好,提前谢谢你。

我正在尝试从 Excel 文件中复制不相邻的特定数据列,包括它们的标题,并最终将它们写入 csv。

什么是最好的方法?

我看到了关于变量、循环和列表的建议。

【问题讨论】:

    标签: power-automate-desktop


    【解决方案1】:

    您可以使用 SQL 来获得您想要的结果。

    您可以使用 excel 电子表格,如 Ace SQL 表(Access 数据库)

    Run Sql Queries in Power Automate Desktop

    复制'代码'并将其粘贴到 Power Automate Desktop 中。 您将必须修复显示的与文件路径相关的错误。

    SET Excel_File_Path TO $'''H:\Temp\SOAnswer.xlsx'''
    
    SET csvFilePath TO $'''H:\Temp\SOAnswer.csv'''
    
    Database.Connect ConnectionString: $'''Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%Excel_File_Path%;Extended Properties="Excel 12.0 Xml;HDR=YES";''' Connection=> SQLConnection
    
    Database.ExecuteSqlStatement.ConnectAndExecute ConnectionString: SQLConnection Statement: $'''SELECT [Value] & ', ' & [Check] & ', ' & [Additional Data] as CSV
    FROM [List1$]''' Timeout: 30 Result=> QueryResult
    
    Database.Close Connection: SQLConnection
    
    Variables.CreateNewList List=> HeadersList
    
    Variables.AddItemToList Item: $'''Value, Check, Additional Data''' List: HeadersList
    
    File.WriteToCSVFile.WriteCSV VariableToWrite: HeadersList CSVFile: csvFilePath CsvFileEncoding: File.CSVEncoding.UTF8 IncludeColumnNames: False IfFileExists: File.IfFileExists.Append ColumnsSeparator: File.CSVColumnsSeparator.SystemDefault
    
    File.WriteToCSVFile.WriteCSV VariableToWrite: QueryResult CSVFile: csvFilePath CsvFileEncoding: File.CSVEncoding.UTF8 IncludeColumnNames: False IfFileExists: File.IfFileExists.Append ColumnsSeparator: File.CSVColumnsSeparator.SystemDefault
    
    # Clean up the "" at the beginning and end of each line
    File.ReadTextFromFile.ReadText File: csvFilePath Encoding: File.TextFileEncoding.UTF8 Content=> csvFileContents
    
    Text.Replace Text: csvFileContents TextToFind: $'''"''' IsRegEx: False IgnoreCase: False ReplaceWith: $'''%''%''' ActivateEscapeSequences: False Result=> csvFileContents
    
    File.WriteText File: csvFilePath TextToWrite: csvFileContents AppendNewLine: True IfFileExists: File.IfFileExists.Overwrite Encoding: File.FileEncoding.Unicode
    

    它最终应该看起来像这样。

    来自 excel 的虚拟数据看起来像这样。

    结果。

    请记住,用于此的 SQL 是 Access SQL 风格的,因此您不会拥有 MS SQL Server 查询的所有功能,但它肯定胜过必须运行多个列表提取并循环遍历它们。

    【讨论】:

      猜你喜欢
      • 2022-06-19
      • 2021-06-03
      • 2022-08-23
      • 2021-06-18
      • 2021-07-11
      • 1970-01-01
      • 2023-01-07
      • 2023-03-03
      • 2022-10-13
      相关资源
      最近更新 更多