2012-12-18 4 views
5

Abbiamo aggiunto un componente aggiuntivo che è stato installato correttamente e verrà visualizzato solo quando si apre Excel dall'icona principale (o una cartella di lavoro vuota). NON verrà visualizzato sulla barra degli strumenti quando si apre un documento excel salvato esistente.My Excel 2010 Aggiungi in mostra solo quando si apre una cartella di lavoro vuota. Non verrà visualizzato all'apertura del documento esistente

Mi sono assicurato che durante l'apertura di un documento esistente, sotto file -> opzioni -> aggiungi, è correttamente controllato nei componenti aggiuntivi COM. Per utilizzare il nostro componente aggiuntivo, dobbiamo aprire una cartella di lavoro vuota e trascinare il nostro file esistente nella cartella di lavoro vuota.

Qualcuno avrebbe idea del motivo per cui viene visualizzato nel nastro su una cartella di lavoro vuota e non su file .xlsx esistenti?

Ho persino eseguito un test in cui apro una cartella di lavoro vuota, confermo che il componente aggiuntivo è sulla barra multifunzione, inserisce del testo in una cella, lo salva sul desktop, lo chiude e quindi lo riapre. Quindi NON si presenta. Questo add-in è stato realizzato con VS2010.

Ecco il codice da "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 
} 

ecco il codice dal file Ribbon.cs che abbiamo fatto ... tutto quello che sta facendo è popolando alcuni campi e la creazione di:

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

incluso il codice per l'addin starup potrebbe essere utile – Sorceri

+0

Questo file AddIn.cs non ha nulla in "ThisAddIn_Startup" o "ThisAddIn_Shutdown", ma l'ho postato nella modifica sopra. – blapsley

+0

Aprire un documento esistente, andare su File> Opzioni> Componenti aggiuntivi. Verifica se il tuo componente aggiuntivo è elencato come attivo o inattivo. – Keith

risposta

0

Ci scusiamo per la risposta in ritardo, ma è un problema molto comune, quindi risponderò comunque. L'ho incontrato io alcune volte, e non aveva nulla a che fare con il codice del mio addin. Il problema era nel pannello di anteprima in explorer. enter image description here Quando si seleziona il file Excel in Esplora risorse, viene avviata un'istanza di Excel per l'anteprima. E poi apri il tuo file in vero Excel, alcuni errori in Excel impediscono il caricamento di tutti gli add-on. Il tuo addin non avvierà nemmeno un codice, quindi non puoi fare nulla dall'interno del tuo componente aggiuntivo. L'unico modo è di non usare l'anteprima con i file Excel. E ancora peggio, dopo l'anteprima di un file, il processo di Excel si blocca ancora in memoria, quindi i componenti aggiuntivi non funzioneranno finché non lo ucciderai da taskmanager. Questo errore si trova nell'eccel 2007, 2010, 1013 e forse anche nel 2016.

Problemi correlati