Internet Explorer kann eine Excel-Add-in (*.xla) Datei nicht öffnen.

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 268016 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Wenn Sie zu einer Microsoft Excel-Add-in (*.xla) Datei aus einer Webseite beim Ausführen von Internet Explorer navigieren, das Add-in nicht geladen werden, und Internet Explorer zeigt eine Warnung, dass die gesuchte Seite derzeit nicht verfügbar ist. Auftritt, das Problem, wenn Sie das Add-in mit dem HTTP-Protokoll jedoch nicht mit das Dateiprotokoll öffnen.

Ursache

Die Warnung tritt auf, weil wirklich Excel-Add-in (XLA) ist eine Excel-Arbeitsmappe (*.xls), die keine Arbeitsblätter enthalten sind. Der einzige Teil der Datei, die von Excel verwendet wird ist die Visual-Basic für Applikationen (VBA) Zwischenspeicherort, Projekt enthält den Code-Add-in (VBA). Jedoch ist ein XLA nur eine XLS in Tarnung, er teilt derselben CLSID als eine Excel-Arbeitsmappe ("{00020820-0000-0000-C000-000000000046}") und wird durch den gleichen Typ (MULTIPURPOSE Internet Mail Extensions) dargestellt ("Application/vnd.ms-excel").

Internet Explorer, Version 3.0 und höher, unterstützt direkte Aktivierung von ActiveX-Dokument-Objekte (ADO) innerhalb des Webbrowsers. Da ein XLA derselben CLSID als eine Excel-Arbeitsmappe, Internet Explorer versucht, eine XLA als integrierbare Arbeitsmappe zu laden. Da die XLA keine Arbeitsblätter für in-Place-Bearbeitung enthält, zeigt das Einbetten von fehlschlägt und die Internet Explorer die Warnung. Die ausgeführte Instanz von Excel, die für die Einbettung gestartet wurde möglicherweise entweder sofort heruntergefahren oder sichtbar. Jedoch erscheint wegen der fehlgeschlagenen direkte Aktivierung es ohne Symbolleisten oder Menüs.

Internet Explorer basiert auf den MIME-Einstellung von Dokumenten, die von einem Server wissen, wie die Seite für anzeigen aktivieren zurückgegeben werden. Wenn ein HTTP-Server einen MIME-Inhaltstyp "Application/vnd.ms-excel" für eine angeforderte Seite zurückgibt, Internet Explorer den Inhalt der Datei als ein Excel zu laden versucht Arbeitsmappe. Standardmäßig ordnet IIS-*.xla-Erweiterung diesen MIME-Typ so, dass Hyperlinks zu XLA Dateien in der Regel das beschriebene Verhalten führen.

Lösung

Um das Problem mithilfe der HTTP-Protokolls das Add-in öffnen zu vermeiden, können Ihre Webseite Clientside-Skripterstellung verwenden, um Microsoft Excel durch Automatisierung zu starten und Laden Sie die XLA von einem URL. Die folgenden Schritte demonstrieren dieser Technik:
  1. Erstellen Sie eine neue Textdatei im Editor und fügen Sie den folgenden Code hinzu:
    <HTML>
    <BODY>
    Press the button to start Excel and load an XLA.
    
    <SCRIPT LANGUAGE="JScript">
    function LoadMyXLA()
    {
      var oXL = new ActiveXObject("Excel.Application");  
      var oAddin = oXL.Workbooks.Open("C:\\Test.xla");
      oAdd.RunAutoMacros(1);
      oXL.Visible = true;
      oXL.UserControl = true;
    }
    </SCRIPT>
    <P><INPUT ID=button1 TYPE=button 
       VALUE="Load XLA" ONCLICK="LoadMyXLA()">
    </BODY>
    </HTML>
    					
  2. Ersetzen Sie der Pfad zu Ihrem XLA (feste Pfad oder ein URL) an die Open -Methode übergebene Zeichenfolge.
  3. Speichern Sie die Textdatei und benennen Sie Sie mit der Erweiterung HTM und in Internet Explorer öffnen Sie, und klicken. Beachten Sie, dass Excel in einem separaten Fenster gestartet und, dass die XLA geladen wird.

Weitere Informationen

Excel-Add-ins (*.xla) unterstützen das Einbetten nicht und kann nicht innerhalb von Internet Explorer geöffnet werden. Endbenutzer normalerweise öffnen Sie keine XLAs; stattdessen öffnen Sie eine XLS, (falls erforderlich) eine oder mehrere XLAs während des Startens lädt. Nur in seltenen Fällen muss ein Benutzer eine XLA direkt zu starten. In diesen Situationen kann Skriptcode verwendet werden wenn die Datei über Internet Explorer gestartet werden.

Automatisierung von Excel aus Skript funktioniert nicht, jedoch der Clientcomputer auf hohe Sicherheit festgelegt wurde oder wenn die Option "Initialisieren und Skript ActiveX-Steuerelemente, die nicht sicher für Skripting markiert" auf Deaktivieren festgelegt wurde hat. Diese Clients müssen Ihre Sicherheit zu "Eingabeaufforderung" in der Lage wählen, führen Sie den Skriptcode und öffnen die XLA verringern. XLAs und Excel-Automatisierung sind nicht sicher für Skripting standardmäßig.

Weitere Informationen dazu, wie Sie diese Optionen können Internet Explorer von einem vertrauenswürdigen Steuerelement programmgesteuert ändern, oder Setup-Dienstprogramm (aber nicht Skript), klicken Sie auf die folgende Artikelnummer, um der Microsoft Knowledge Base:
182569Internet Explorer-Zonen Registrierungseinträge für fortgeschrittene Benutzer

Andere Überlegungen und Problemumgehungen

Wenn eine Lösung, die Ihre Webdesign passt, scripting nicht ist, Sie suchen können, um das Problem durch Änderungen an der Registrierung zu vermeiden und Änderung von der XLA-Datei selbst. Dies muss erfolgen außerhalb von Internet Explorer oder Active Server Pages (ASP) und ist keine realisierbare Lösung für Webanwendungen die Client-Umgebung gesteuert werden kann nicht. Die folgende Erläuterungen erläutert weitere ausführlich die Ursache für das Problem und was Sie tun müssen, um das Problem zu vermeiden.

Da Internet Explorer den durch den Server während einer HTTP GET-Operation angegebenen MIME-Typ verwendet, müssen Sie verhindern, dass IIS (oder der Webserver mit dem Sie kommunizieren) "Application/vnd.ms-excel" MIME-Typ die *.xla-Erweiterung zuordnen. IIS speichert diese Informationen in die Eigenschafteneinstellungen für den Webordner (d. h., in der Metabasis). Um das Verhalten Ihrer Website zu ändern, müssen Sie die Metabasis bearbeiten. Zu diesem Zweck für IIS-Versionen 4.0 und 5.0 können Sie die folgenden Schritte aus:
  1. Starten Sie den Manager für Internet-Informationsdienste.
  2. Klicken Sie mit der rechten Maustaste auf den Ordner, die das Add-in unter der Standardwebsite mit, und wählen Sie Eigenschaften im Dropdown-Menü.
  3. Wählen Sie die Registerkarte HTTP-Header , und klicken Sie unter MIME-Zuordnungen auf Dateitypen .
  4. Klicken Sie auf Neuer Typ . Geben Sie .xla für die Zugeordnete Erweiterung und Text/Plain für den Inhaltstyp (MIME) . Klicken Sie auf OK , um den Dateityp hinzuzufügen.
  5. Klicken Sie auf OK , um das Dialogfeld Dateitypen zu schließen, und klicken Sie auf OK , um das Dialogfeld Eigenschaften des Ordners zu schließen.

    Hinweis : der IIS-Server, müssen möglicherweise heruntergefahren und neu gestartet, damit die Änderungen wirksam werden.
Lokal geöffnete Dateien oder Dateien von einem Webserver, der keine MIME-Typ angeben geöffnet, verwendet Internet Explorer die CLSID aus der Datei selbst, um einen Server zuzuordnen und Laden Sie die Datei. Da ein XLA identisch ist ist eine XLS, die CLSID für die Stamm-Speicherung einer Excel-Arbeitsmappe (Excel.Sheet. 8). Um zu Internet Explorer verhindern, dass diese CLSID verwenden, müssen Sie es aus der Datei mithilfe von OLE Structured Storage APIs entfernen. Dies sollte keine Auswirkungen auf die Funktionen des die Datei in Excel, aber wenn die Datei in Excel geändert wird, ist die CLSID in der Datei wieder.

Der folgende Microsoft Visual C++-Code zeigt Sie zum Ersetzen der CLSID von der zentrale Speicher mit einer NULL CLSID:
#include <windows.h>
int PASCAL WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
   LPSTR pszCmdLine, int nCmdShow)
{
  WCHAR wszFile[MAX_PATH];
  CHAR  szFile[MAX_PATH];
  szFile[0] = 0;

  OPENFILENAME    ofn;
  ZeroMemory(&ofn, sizeof(OPENFILENAME));

  if (FAILED(CoInitialize(NULL)))
    return -1;

  ofn.lStructSize      = sizeof(OPENFILENAME);
  ofn.lpstrFilter      = "Microsoft Excel Addins (*.xla)\0*.xla\0\0";
  ofn.nFilterIndex     = 1L;
  ofn.lpstrDefExt      = "xla";
  ofn.lpstrFile        = szFile;
  ofn.nMaxFile         = MAX_PATH;
  ofn.Flags            = OFN_HIDEREADONLY | OFN_FILEMUSTEXIST;

  if (GetOpenFileName(&ofn) && (szFile[0] != '\0'))
  {
		
    if (!MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED,
           szFile, -1, wszFile, MAX_PATH))
    {
       MessageBox(NULL, "Can't convert to Unicode!",
          "XlaClsid", MB_ICONSTOP | MB_SETFOREGROUND);
       return -2;
    }

    IStorage* pstg = NULL;
    HRESULT hr = StgOpenStorage(wszFile, NULL,
             STGM_READWRITE | STGM_SHARE_EXCLUSIVE, NULL, 0, &pstg);
    if (SUCCEEDED(hr) && pstg)
    {			
       pstg->SetClass(GUID_NULL);
       pstg->Release();
       MessageBox(NULL, "Call succeeded. CLSID has been stripped.",
          "XlaClsid", MB_ICONINFORMATION | MB_SETFOREGROUND);
    }
    else
    {
       MessageBox(NULL, "Unable to open file. It may be in use.",
          "XlaClsid", MB_ICONSTOP | MB_SETFOREGROUND);
    }
    
  }

  CoUninitialize();
  return 0;
}
				
Anmerkung Internet Explorer überprüft nicht die CLSID aus der structured Storage-Datei, wenn die XLA wird von der Adressleiste geöffnet, aber überprüft, wenn die XLA in einen Hyperlink verwiesen wird. Während dies in zukünftigen Versionen von Internet Explorer ändern kann, sollten Sie nicht das aktuelle Verhalten abhängig und aufzugeben, entfernen die CLSID aus der XLA.

Wenn die Datei CLSID entfernt wurde und der Server hat einen MIME-Typ nicht angegeben, verwendet Internet Explorer anschließend die Dateierweiterung Excel starten und laden die XLA. Je nach Konfiguration der Registrierung auf dem Clientsystem kann die Datei noch zum einbetten, öffnen, damit Änderungen an der Registrierung Client möglicherweise erforderlich. Die Registrierungsschlüssel von Interesse sind:
   HKEY_CLASSES_ROOT\.xla
				
- und -
   HKEY_CLASSES_ROOT\Excel.Addin
				
müssen Sie sicherstellen, dass kein "Inhaltstyp"-Wert unter diesen Registrierungsschlüsseln angegeben werden, da die Schlüssel Internet Explorer MIME-Typ und von dort wieder zu der Arbeitsmappe CLSID umgeleitet können ist. Darüber hinaus kann die Excel.Addin-Taste einen CLSID-Unterschlüssel enthalten, der auch Internet Explorer verwendet einbetten umleitet. Dieser Schlüssel sollte umbenannt oder entfernt, um verhindern, dass Internet Explorer suchen die CLSID.

Wenn alle der vorhergehenden Schritte befolgt werden, wird Internet Explorer eine CLSID für den Dateityp wurde nicht gefunden werden und lädt die Datei mit einem Befehl ShellExecute . Dadurch wird die Datei ausgeführt, als ob der Benutzer von Internet Explorer doppelgeklickt wurde.

Informationsquellen

Weitere Informationen zu MIME-Typen und Office Dokumente, finden folgende Artikel Sie in der Microsoft Knowledge Base:
199841So wird 's gemacht: Anzeigen ASP Ergebnisse Excel bei IE mit MIME-Typen
266263Fehler: Word 2000 und Excel 2000 Display ASP Source bei mit MIME-Typ zum Stream Daten
247389IIS: How to Disable Zwischenspeicherung von spezifischen MIME-Typen

Eigenschaften

Artikel-ID: 268016 - Geändert am: Mittwoch, 10. Januar 2007 - Version: 5.4
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Internet Explorer 3.0
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.5
Keywords: 
kbmt kbprb kbprogramming KB268016 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 268016
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com