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);
}
}
}
}
tym kodem dla Starup dodatek może być użyteczny plik – Sorceri
ThisAddIn.cs ma nic w „ThisAddIn_Startup” lub „ThisAddIn_Shutdown”, ale napisałem go w powyższej edycji. – blapsley
Otwórz istniejący dokument, przejdź do Plik> Opcje> Dodatki. Sprawdź, czy Twój dodatek jest wymieniony jako aktywny lub nieaktywny. – Keith