2016-04-15 1 views
1

Wir suchen, um folgende Operationen (in Reihenfolge) auf einer Excel-Vorlage Datei über C# .NET durchzuführen.Führen Sie Excel auf Server - C# Interop Excel

  1. Öffnen Sie die Excel-Vorlage
  2. Lesen von Daten aus SQL-Ansichten und schreiben in ein Blatt in der Excel-Vorlage
  3. Set benannten Bereich für die in
  4. Refresh Pivot-Tabelle kopiert Daten, die auf der genannten Basis Bereich
  5. Passwort schützen und die Datei als Download zurückgeben.

unten sind die verfügbaren Optionen in Betracht gezogen: 1. Microsoft.Office.Interop.Excel - Der Fahrer alle oben genannten Funktionalitäten erreicht, jedoch erfordert der Fahrer Excel-Client-Tool auf dem Server installiert werden, die nicht ist Die bevorzugte Option, da wir nicht die Installation von Excel in allen Umgebungen anfordern können. 2. Angebote von Drittanbietern - Ein kostenloser Treiber namens Excel Package Plus schien fast allen unseren Anforderungen gerecht zu werden. Wir waren in der Lage, in der obigen Liste von Operationen alles zu tun, außer die Pivot-Tabelle zu aktualisieren. 3. Schreiben eines Makros in die vorhandene Excel-Datei zum Aktualisieren der Pivot-Tabelle - Die Aktualisierung wird ausgeführt, wenn die Datei vom Benutzer geöffnet wird und eine Verzögerung verursacht. Außerdem muss die Datei mit aktualisierter Pivot-Tabelle heruntergeladen werden.

Also, klar mit all den oben genannten Optionen, haben wir eine Straßensperre getroffen. Ich habe mich gefragt, ob es möglich ist, die Excel-Vorlage in einem Server zu platzieren, der Excel installiert hat und vom Webserver darauf zugreifen kann. Auf diese Weise kann ich Interop.Excel verwenden, ohne den Treiber auf meinem Webserver installieren zu müssen. Ich bin nicht wirklich sicher, ob das wie erwartet funktioniert.

Antwort

2

Verwenden Sie Interop nicht auf einem Server. Ich habe es getan, und es ist ein Albtraum - Sie werden Prozesse eingefroren haben, Speicherlecks und Hund langsam Leistung.

Was ich empfehlen würde, ist EPPLUS für alle Sachen zu verwenden, wo Sie es verwenden können, und verwenden Sie das Open XML SDK, um die Excel-Datei zu öffnen und die benannten Bereiche festzulegen.

Open XML SDK ist die Low-Level-API zum Bearbeiten von Offixe-XML-Dokumenten, einschließlich Excel. Sie können damit alles tun, was Sie in Office tun können. Es ist ziemlich kompliziert, daher würde ich empfehlen, epplus zu verwenden, wo immer Sie können, da das viele der Fallstricke der manuellen Excel-Bearbeitung vermeidet.

Ich erinnere mich an ein Tool, das Sie den C# -Code erstellen konnte, um das Dokument zu erstellen - Sie könnten also ein Excel-Dokument mit dem benannten Bereich übergeben und sehen, wie das Tool den benannten Bereich im Code erstellt. Ich denke, das Werkzeug wurde in der SDK

enthalten