2012-12-18 5 views
5

Wprowadziliśmy dodatek excel, który jest zainstalowany poprawnie i pojawi się tylko przy otwieraniu programu Excel z ikony głównej (lub pustego skoroszytu). NIE pojawi się na pasku narzędzi podczas otwierania jakiegokolwiek istniejącego zapisanego dokumentu Excel.My Excel 2010 Add-only pojawia się przy otwieraniu pustego skoroszytu. Nie pojawi się przy otwieraniu istniejącego dokumentu

Upewniłem się, że podczas otwierania istniejącego dokumentu, w pliku -> opcje -> dodawanie, jest ono poprawnie sprawdzane w dodatkach COM. Abyśmy mogli skorzystać z naszego dodatku, musimy otworzyć pusty skoroszyt i przeciągnąć istniejący plik do pustego skoroszytu.

Czy ktoś ma pojęcie, dlaczego pojawiłby się tylko na wstążce w pustym skoroszycie, a nie w istniejących plikach .xlsx?

Przeprowadziłem nawet test, w którym otwieram pusty skoroszyt, potwierdzam, że dodawanie jest na wstążce, umieszczam tekst w komórce, zapisuję na pulpicie, zamykam, a następnie ponownie go otwieram. To NIE pojawia się. Ten dodatek został wykonany przy użyciu VS2010.

Oto kod z „ThisAddIn.cs”

public partial class ThisAddIn 
{ 
    private void ThisAddIn_Startup(object sender, System.EventArgs e) 
    { 
    } 

    private void ThisAddIn_Shutdown(object sender, System.EventArgs e) 
    { 
    } 

    #region VSTO generated code 

    /// <summary> 
    /// Required method for Designer support - do not modify 
    /// the contents of this method with the code editor. 
    /// </summary> 
    private void InternalStartup() 
    { 
     this.Startup += new System.EventHandler(ThisAddIn_Startup); 
     this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown); 
    } 

    #endregion 
} 

Oto kod z pliku Ribbon.cs że zrobiliśmy ... wszystko robi się zapełnianie kilka pól i konfigurowania:

private void MyRibbon_Load(object sender, RibbonUIEventArgs e) 
{ 

    Excel._Workbook activeWorkbook = (Excel._Workbook)Globals.ThisAddIn.Application.ActiveWorkbook; 
    if (activeWorkbook.Path == "") 
    { 
    string pathMyDocuments = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments); 
    this.editBox1.Text = pathMyDocuments; 
    } 
    else 
    { 
    this.editBox1.Text = activeWorkbook.Path; 
    this.fileBox.Text = "Converted_" + activeWorkbook.Name; 
    } 

    this.folderBrowserDialog1.RootFolder = System.Environment.SpecialFolder.MyComputer; 
    this.folderBrowserDialog1.ShowNewFolderButton = true; 

    //populate the dropdown box with spreadsheet templates 
    using (SqlConnection conn = new SqlConnection("<removed for stack overflow>")) 
    { 
    using (SqlCommand command = new SqlCommand("<sql command text removed for SO", conn)) 
    { 
     command.CommandType = CommandType.Text; 

     conn.Open(); 
     SqlDataReader reader = command.ExecuteReader(); 

     while (reader.Read()) 
     { 
     RibbonDropDownItem item = Globals.Factory.GetRibbonFactory().CreateRibbonDropDownItem(); 
     item.Label = reader["MasterSpreadsheetName"].ToString(); 
     ddlSpreadsheetTemplate.Items.Add(item); 
     } 
    } 
    } 
} 
+0

tym kodem dla Starup dodatek może być użyteczny plik – Sorceri

+0

ThisAddIn.cs ma nic w „ThisAddIn_Startup” lub „ThisAddIn_Shutdown”, ale napisałem go w powyższej edycji. – blapsley

+0

Otwórz istniejący dokument, przejdź do Plik> Opcje> Dodatki. Sprawdź, czy Twój dodatek jest wymieniony jako aktywny lub nieaktywny. – Keith

Odpowiedz

0

Przepraszamy za późną odpowiedź, ale jest to bardzo powszechny problem, więc i tak odpowiem. Napotkałem to sam kilka razy i nie miało to nic wspólnego z kodem mojego addina. Problem był w okienku podglądu w eksploratorze. enter image description here Po wybraniu pliku excel w Eksploratorze uruchamia wystąpienie programu Excel w celu podglądu. A potem otwierasz swój plik w prawdziwym Excelu, jakiś błąd w Excelu uniemożliwia załadowanie wszystkich dodatków. Twój dodatek nie uruchomi nawet żadnego kodu, więc nie możesz nic zrobić z wnętrza swojego dodatku. Jedynym sposobem nie jest użycie podglądu z plikami Excel. Co gorsza, po przejrzeniu jednego pliku, proces programu Excel wciąż zawiesza się w pamięci, więc dodatki nie będą działać, dopóki nie zabijesz go z menedżera zadań. Ten błąd jest w Excel 2007, 2010, 1013, a może nawet 2016.

Powiązane problemy