Fermer

février 5, 2025

Dynamic Excel Mise à jour avec les applications électriques, l’automate d’alimentation et les scripts de bureau / blogs / perficient

Dynamic Excel Mise à jour avec les applications électriques, l’automate d’alimentation et les scripts de bureau / blogs / perficient


Les flux de travail commerciaux modernes nécessitent souvent des moyens flexibles et efficaces d’exporter, de transformer et de partager des données. En combinant les capacités des applications électriques, de Power Automate et des scripts Office, vous pouvez créer un processus transparent pour personnaliser et mettre à jour dynamiquement des fichiers Excel avec un effort minimal.

Ce guide montre comment exporter dynamiquement les données à partir des applications d’alimentation, les traiter avec Power Automate, les formater dans Excel à l’aide de scripts Office et envoyer le fichier mis à jour par e-mail. Plongeons-nous dans les détails.

Ce blog démontre une solution pratique pour automatiser les exportations de données et les rapports dynamiques dans Excel, adaptés aux utilisateurs qui s’attendent à une sélection de colonnes dynamiques pour les en-têtes de rapport. La préparation et le formatage des données manuelles peuvent être longs et sujets aux erreurs dans de nombreux projets, en particulier ceux impliquant des rapports personnalisés.

Avec le processus décrit dans ce blog, vous pouvez:

  • Sélectionnez et modifiez dynamiquement les en-têtes de colonne en fonction de l’entrée utilisateur.
  • Automatisez la transformation des données brutes en un fichier Excel formaté.
  • Partagez la sortie finale sans effort par e-mail.

Cette solution intègre les applications électriques, l’automate d’alimentation et les scripts de bureau pour vous assurer que votre processus de rapport est plus rapide, sans erreur et adaptable aux exigences changeantes, ce qui vous permet de vous permettre de temps et d’efforts.

Exportation de données à partir d’applications de puissance

Création d’une collection dans les applications de puissance

Une collection dans Power Apps sert de conteneur de stockage de données temporaire qui contient les enregistrements que vous souhaitez traiter. Voici comment le configurer:

Étape 1: Définissez la collecte de données

  • Ouvrez votre application Power et accédez à l’écran Affichage ou gestion de vos données.
  • Utilisez la fonction Collect ou ClearCollect dans les applications de puissance pour créer une collection nommée ExportData qui contient les colonnes de données requises.
  • Vous pouvez remplir dynamiquement cette collection en fonction de l’interaction utilisateur ou des données préexistantes à partir d’une source connectée. Par exemple:

Photo1

  • Ici, la collection ExportData est remplie d’un tableau statique des enregistrements. Vous pouvez remplacer ces données statiques par des données réelles récupérées à partir des sources de votre application.
  • Conseil: Utilisez des connecteurs de données comme SharePoint, SQL Server ou Dataverse pour récupérer les données en temps réel et les ajouter à la collection.

Étape 2: Définissez un nom de tête de table pour les noms de colonnes

  • Pour vous assurer que le fichier Excel exporté comprend les en-têtes de colonne corrects, définissez une variable nommée nom de tête qui contient les noms des colonnes à inclure.
Set(HeaderName, ["Name", "Age", "Country"])

Cette variable spécifie les en-têtes de colonne apparaissant dans le fichier Excel exporté.

Photo2

Transmettre des données à Power Automatiser

Une fois la collection ExportData et le nom de tête de la tête, passez-les comme entrées dans le flux de puissance automatisé.

Étape 1: Ajoutez le flux aux applications d’alimentation

  1. Accédez à l’onglet Power Automate dans les applications de puissance.
  2. Cliquer sur + Ajoutez un flux et sélectionnez le flux que vous avez créé pour exporter des données pour exceller.

Étape 2: déclenchez le flux et envoyez les données

    • Utilisez la formule suivante pour déclencher le flux et passer les données:
CustomizingDataExports.Run(JSON(ExportData), JSON(HeaderName))

Photo3

  • PersumezingDataExports est le flux d’automatise de puissance.
  • JSON (ExportData) convertit la collection en un objet JSON que Power Automate peut traiter.
  • JSON (Headername) convertit la collection en un objet JSON qui passe les en-têtes de colonne à utiliser dans l’exportation Excel.

Traitement des données avec l’automate d’alimentation

Power Automate Bridges Power Apps and Excel, permettant un traitement, une transformation et un partage transparents de données. Suivez ces étapes pour configurer votre flux:

1. Recevoir des entrées

  • Action de déclenchement: Utilisez le déclencheur des applications Power pour accepter deux variables d’entrée:
    • ExportData: l’ensemble de données.
    • Nom de tête: les en-têtes de colonne.
  • Ajouter des paramètres d’entrée:
    • Accédez à l’action de déclenchement.
    • Cliquez sur Ajouter une entrée, sélectionnez Type de texte pour les deux variables et étiquetez-les.

2. Préparer les données

Ajoutez deux actions de composition pour traiter les entrées.

Pour exportdata:

json(triggerBody()?['text'])

Pour le nom de tête:

json(triggerBody()?['text_1'])

Ajoutez une action JSON d’analyse pour structurer l’entrée du nom de tête:

Contenu:

outputs('Compose_-_HeaderName')

Schéma:

{
    "type": "array",
    "items": {
        "type": "object",
        "properties": {
            "Value": {
                "type": "string"
            }
        },
        "required": [
            "Value"
        ]
    }
}

Utilisez une action de sélection pour extraire les valeurs:

Depuis:

body('Parse_JSON')

Carte:

item()['Value']

Photo4

3. Configuration du modèle Excel

Ajoutez une action Get File Content pour récupérer un modèle Excel prédéfini à partir du stockage (par exemple, SharePoint ou OneDrive).

Utilisez une action de fichier Créer pour enregistrer le modèle en tant que nouveau fichier:

Nom de fichier dynamique:

guid().xlsx

Convertissez l’exportdata en format CSV:

  • Ajoutez une action de la table CSV Créer:

Depuis:

outputs('Compose_-_ExportData')

Photo5

Formatage des données avec les scripts de bureau

Les scripts de bureau sont utilisés pour traiter et formater dynamiquement les données dans Excel. Voici comment vous l’implémentez:

Configurer le script

Ouvrez Excel et accédez à l’onglet «Automatiser».

Créez un nouveau script de bureau et collez le code suivant:

function main(workbook: ExcelScript.Workbook, headersArray: string[], csvData: string) {
  let activeWorksheet = workbook.getWorksheet("Sheet1");
  let csvRows = csvData.split('\n');
  csvRows = csvRows.map(row => row.replace(/\r$/, ''));
  let headerRow = csvRows[0].split(',');
  // Create a mapping of column headers to their indices
  let columnIndexMap: { [key: string]: number } = {};
  for (let i = 0; i < headerRow.length; i++) {
    let header = headerRow[i];
    if (headersArray.includes(header)) {
      columnIndexMap[header] = i;
    }
  }
  // Create new Excel table with headers below the logo
  let range = activeWorksheet.getRangeByIndexes(0, 0, 1, headersArray.length);
  range.setValues([headersArray]);
  // Batch size for inserting data into Excel
  const batchSize = 500;
  let batchData: string[][] = [];
  let columncount = 0;
  // Loop through CSV data and filter/select desired columns
  for (let j = 1; j < csvRows.length; j++) {
    let rowData = parseCSVRow(csvRows[j]);
    let filteredRowData: string[] = [];
    for (let k = 0; k < headersArray.length; k++) {
      let header = headersArray[k];
      let columnIndex = columnIndexMap[header];
      filteredRowData.push(rowData[columnIndex]);
    }
    batchData.push(filteredRowData);
    // Insert data into Excel in batches
    if (batchData.length === batchSize || j === csvRows.length - 1) {
      let startRowIndex = j - batchData.length + 1; // Start after the logo and headers
      let startColIndex = 0;
      let newRowRange = activeWorksheet.getRangeByIndexes(startRowIndex, startColIndex, batchData.length, batchData[0].length);
      newRowRange.setValues(batchData);
      batchData = [];
    }
    columncount=j;
  }
  workbook.addTable(activeWorksheet.getRangeByIndexes(0, 0, columncount, headersArray.length), true).setPredefinedTableStyle("TableStyleLight8");
  activeWorksheet.getRangeByIndexes(0, 0, columncount, headersArray.length).getFormat().autofitColumns();

  // Release the lock on the workbook
  activeWorksheet.exitActiveNamedSheetView();
}
// Custom CSV parsing function to handle commas within double quotes
function parseCSVRow(row: string): string[] {
  let columns: string[] = [];
  let currentColumn = '';
  let withinQuotes = false;
  for (let i = 0; i < row.length; i++) {
    let char = row[i];
    if (char === '"') {
      withinQuotes = !withinQuotes;
    } else if (char === ',' && !withinQuotes) {
      columns.push(currentColumn);
      currentColumn = '';
    } else {
      currentColumn += char;
    }
  }
  columns.push(currentColumn); // Add the last column
  return columns;
}

Image6

Intégrer avec l’automatise de puissance

Utilisez l’action de script d’exécution dans Power Automatise pour exécuter le script Office.

Passez le tableau d’en-tête et les données CSV sous forme de paramètres.

Photo7

Envoyer le fichier mis à jour par e-mail

Une fois le fichier Excel mis à jour avec les scripts de bureau, vous pouvez l’envoyer aux destinataires par e-mail Outlook.

1. Récupérez le fichier mis à jour:

  • Ajoutez une action Get File Content pour récupérer le fichier mis à jour.

Utilisez le chemin du fichier ou l’identifiant à partir de l’action de fichier Create.

outputs('Create_file')?['body/Id']

Photo8

2. Envoyez un e-mail (v2):

  • Ajoutez l’action Envoyer une e-mail (v2) à partir du connecteur Outlook.
  • Configurer l’e-mail:
    • À: Ajoutez l’e-mail du destinataire dynamiquement ou entrez-le manuellement.
    • Sujet: Fournir un sujet significatif, tel que «Fichier d’exportation de données personnalisé»
    • Corps: Ajoutez un message personnalisé, y compris des détails sur le fichier ou le processus.
    • Attachements:
      • Nom: Utilisez une valeur dynamique
outputs('Create_file')?['body/Name']
        • Contenu: Passez la sortie de l’action Get File Content.
body('Get_file_content_-_Created_File')

Photo9

Intégrer le flux de travail

  1. Testez toute l’intégration des applications de puissance à l’automate d’alimentation et des scripts de bureau.
  2. Vérifiez que le fichier Excel final comprend les en-têtes corrects et la mise en forme des données.
  3. Confirmez que le fichier Excel mis à jour est joint à l’e-mail et envoyé aux destinataires spécifiés.

Résultat:

Exceller

Photo10

E-mail

Photo11

Comment cette solution fait gagner du temps

Cette approche est adaptée aux scénarios où les utilisateurs ont besoin d’une sélection dynamique d’en-têtes de colonne pour les rapports personnalisés. Au lieu de passer des heures à formater manuellement les données et à préparer des rapports, cette solution automatise le processus de bout en bout, en garantissant:

  • Formatage précis des données sans intervention manuelle.
  • Adaptation rapide aux exigences changeantes (par exemple, sélectionner différents en-têtes de rapport).
  • Partage transparent des rapports par e-mail en quelques clics.

Ce flux de travail minimise les erreurs, accélère le processus de rapport et améliore l’efficacité globale du projet en automatisant les tâches répétitives.

Conclusion

Vous pouvez créer des workflows robustes et dynamiques pour l’exportation et la transformation des données en combinant les applications électriques, l’automate d’alimentation et les scripts de bureau. Cette approche fait gagner du temps, réduit l’effort manuel et garantit la cohérence des processus. L’ajout de fonctionnalité par e-mail garantit que le fichier mis à jour atteint les parties prenantes sans intervention manuelle. Que vous gérez des exportations de données simples ou des transformations complexes, cette solution fournit un moyen évolutif et efficace de gérer les données Excel.






Source link