Überblick

In diesem Artikel erfahren Sie, wie Sie Ihre Excel-Arbeitsmappen durch die Einbindung von Bildern mithilfe von Office-Skripts verbessern können. Bilder spielen eine entscheidende Rolle beim Branding, der visuellen Identität und dem Vorlagendesign und verwandeln eine Arbeitsmappe von einer bloßen Tabelle in ein optisch ansprechendes Dokument.

Dieses Tutorial umfasst zwei Szenarios:

 

Kopieren eines Bildes über Arbeitsblätter hinweg:

Zweck: Dieses Beispiel zeigt, wie ein Bild von einem Arbeitsblatt in ein anderes kopiert wird. Dies ist besonders nützlich, um die Konsistenz aufrechtzuerhalten, z. B. um ein Firmenlogo auf jedem Blatt an derselben Position zu platzieren.

Hinzufügen eines Bildes von einer URL zu einer Arbeitsmappe:

Zweck: Dieses Beispiel veranschaulicht, wie Bilder von einer URL kopiert werden. Dies kann nützlich sein, um Fotos, die ein Kollege in einem freigegebenen Ordner gespeichert hat, in eine zugehörige Arbeitsmappe zu integrieren. Beachten Sie, dass dieses Beispiel keine lokalen Bilddateien unterstützt.

Einrichtung:  add-images

Verwenden Sie zum Nachvollziehen die bereitgestellte Excel-Arbeitsmappe, die die vom Skript erwarteten erforderlichen Daten, Objekte und Formatierungen enthält.

Beispielcode: Kopieren Sie ein Bild über Arbeitsblätter hinweg

Kopieren Sie das folgende TypeScript-Skript und fügen Sie es in Ihre Excel-Arbeitsmappe ein, um ein Bild von einem Arbeitsblatt in ein anderes zu übertragen.

/**
 *Dieses Skript überträgt ein Bild von einem Arbeitsblatt auf ein anderes.
 */
function main(workbook: ExcelScript.Workbook)
{
  // Holen Sie sich das Arbeitsblatt mit dem Bild darauf.
  let firstWorksheet = workbook.getWorksheet("FirstSheet");

  // Holen Sie sich das erste Bild aus dem Arbeitsblatt.
  // Wenn ein Skript das Bild hinzugefügt hat, können Sie einen Namen hinzufügen, um das Auffinden zu erleichtern.

  let image: ExcelScript.Image;
  firstWorksheet.getShapes().forEach((shape, index) => {
    if (shape.getType() === ExcelScript.ShapeType.image) {
      image = shape.getImage();
      return;
    }
  });

  // Das Bild in ein anderes Arbeitsblatt kopieren.
  image.getShape().copyTo("SecondSheet");
}

Beispielcode: Fügen Sie ein Bild von einer URL zu einer Arbeitsmappe hinzu

async function main(workbook: ExcelScript.Workbook) {
  // Das Bild von einer URL abrufen.
  const link = "https://raw.githubusercontent.com/OfficeDev/office-scripts-docs/master/docs/images/git-octocat.png";
  const response = await fetch(link);

  // Antwort als ArrayBuffer speichern, da es sich um eine Rohbilddatei handelt.
  const data = await response.arrayBuffer();

  // Konvertieren Sie die Bilddaten in einen Base64-codierten String.
  const image = convertToBase64(data);

  // Das Bild einem Arbeitsblatt hinzufügen.
  workbook.getWorksheet("WebSheet").addImage(image);
}

/**
 * Konvertiert einen ArrayBuffer, der ein PNG-Bild enthält, in eine Base64-codierte Zeichenfolge.
 */

function convertToBase64(input: ArrayBuffer) {
  const uInt8Array = new Uint8Array(input);
  const count = uInt8Array.length;

  // Ordnen Sie im Voraus den erforderlichen Platz zu.
  const charCodeArray = new Array(count) as string[];
  
  // Jeden Eintrag im Array in ein Zeichen umwandeln.
  for (let i = count; i >= 0; i--) { 
    charCodeArray[i] = String.fromCharCode(uInt8Array[i]);
  }

 // Konvertieren Sie die Zeichen in Base64.
  const base64 = btoa(charCodeArray.join(''));
  return base64;
}

Experimentieren Sie ruhig mit diesen Skripten, um Ihre Excel-Arbeitsmappen mit Bildern anzupassen und zu erweitern.

Benötigen Sie einen VBA Programmierer?

Wir als exact construct programmieren mit einem Team von rd. 20 Mitarbeitern seit über 10 Jahren Excel-Tools. Wir sind ein Nischenanbieter der spezialisiert auf Makros/VBA-Codes ist. Daneben unterstützen wir auch als 3rd Level Support die IT-Abteilungen rund um Probleme bei MS Office (Excel, Word, PowerPoint, etc.).
Haben Sie ein Excel-Problem? Benötigen Sie einen Makro-Programmierer? Rufen Sie uns unverbindlich an +41 52 511 05 25 oder kontaktieren Sie uns via Kontaktformular.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen