2012-12-18 29 views
5

Chúng tôi đã thêm một excel vào đó được cài đặt đúng và sẽ chỉ hiển thị khi mở Excel từ biểu tượng chính (hoặc sổ làm việc trống). Nó sẽ KHÔNG hiển thị trên thanh công cụ khi mở bất kỳ tài liệu excel nào đã lưu.Excel 2010 của tôi Thêm vào chỉ hiển thị khi mở một sổ làm việc trống. Sẽ không hiển thị khi mở tài liệu hiện có

Tôi đã đảm bảo rằng khi mở tài liệu hiện có, trong tệp -> tùy chọn -> thêm vào, nó được kiểm tra chính xác trong phần bổ sung COM. Để chúng tôi sử dụng tính năng thêm vào, chúng tôi phải mở một sổ làm việc trống và kéo tệp hiện có của chúng tôi vào sổ làm việc trống.

Có ai có bất kỳ ý tưởng nào tại sao nó chỉ hiển thị trong ruy-băng trên sổ làm việc trống và không hiển thị trên các tệp .xlsx hiện có không?

Tôi thậm chí còn chạy thử nghiệm nơi tôi mở sổ làm việc trống, xác nhận bổ trợ nằm trên ruy-băng, đặt một số văn bản vào ô, lưu văn bản vào màn hình của tôi, đóng và sau đó mở lại. Sau đó nó không hiển thị. Phần bổ sung này được thực hiện với VS2010.

Đây là mã từ "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 
} 

Đây là mã từ tập tin Ribbon.cs mà chúng tôi thực hiện ... tất cả những gì đang làm được Populating một vài lĩnh vực và thiết lập:

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

bao gồm mã cho phần bổ trợ addin có thể hữu ích – Sorceri

+0

Tệp ThisAddIn.cs không có gì trong "ThisAddIn_Startup" hoặc "ThisAddIn_Shutdown", nhưng tôi đã đăng nó trong bản chỉnh sửa ở trên. – blapsley

+0

Mở tài liệu hiện có, chuyển đến Tệp> Tùy chọn> Bổ trợ. Xem liệu trình bổ sung của bạn có được liệt kê là đang hoạt động hoặc không hoạt động hay không. – Keith

Trả lời

0

Xin lỗi vì câu trả lời trễ, nhưng đó là vấn đề rất phổ biến, vì vậy tôi sẽ trả lời. Tôi đã gặp nó một vài lần, và nó không liên quan gì đến mã của addin của tôi. Sự cố ở trong ngăn xem trước trong trình khám phá. enter image description here Khi bạn chọn tệp excel trong Explorer, nó sẽ bắt đầu một phiên bản Excel để xem trước. Và sau đó bạn mở tệp của mình bằng Excel thực, một số lỗi trong Excel ngăn tất cả các phần bổ trợ tải. Addin của bạn thậm chí sẽ không bắt đầu bất kỳ mã nào, vì vậy bạn không thể làm bất cứ điều gì từ bên trong addin của bạn. Cách duy nhất là không sử dụng xem trước với các tệp excel. Và thậm chí tệ hơn, sau khi một tệp được xem trước, quá trình Excel vẫn bị treo trong bộ nhớ, vì vậy các bổ trợ sẽ không hoạt động cho đến khi bạn xóa nó khỏi trình quản lý tác vụ. Lỗi này nằm trong excel 2007, 2010, 1013 và thậm chí có thể là năm 2016.