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);
}
}
}
}
incluso il codice per l'addin starup potrebbe essere utile – Sorceri
Questo file AddIn.cs non ha nulla in "ThisAddIn_Startup" o "ThisAddIn_Shutdown", ma l'ho postato nella modifica sopra. – blapsley
Aprire un documento esistente, andare su File> Opzioni> Componenti aggiuntivi. Verifica se il tuo componente aggiuntivo è elencato come attivo o inattivo. – Keith