2017-10-31 1 views
2

C#으로 Excel에 추가 기능을 작성하려고합니다. 이 tutorial을 사용하고 있습니다. 지금까지 좋았지 만, 나는 코드의이 부분에 문제가 : workbooks 컬렉션모든 열린 Excel 통합 문서를 반복하십시오.

private void PopulateWorkbooks() 
{ 
    var excel = Globals.ThisAddIn.Application; 
    var workbooks = excel.Workbooks; 
    foreach (var workbook in workbooks) 
    { 
     var book = workbook as Excel.Workbook; 
     if (book != null) 
     { 
      var workbookViewModel = new WorkbookViewModel(book); 
      this.workbookViewModels.Add(workbookViewModel); 
     } 
    } 
} 

더 통합 문서 없습니다. 코드가 루프에 들어 가지 않습니다 ...

아이디어가 있으십니까?

+0

이 기능은 추가 기능에서 호출 했습니까? 또는 콘솔 응용 프로그램 내에서? – Chawin

+0

VSTO 2017 Enterprise – Gadziu

+0

에서 디버깅을 실행합니다. 통합 문서에서 호출하지 않으면 왜 컬렉션에 통합 문서가 있어야할까요? – Chawin

답변

1

양식에 ListBox를 추가하고이 코드를 팝업하기 만하면됩니다.

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using Microsoft.Office.Interop.Excel; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     Microsoft.Office.Interop.Excel.Application XL = null; 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      XL = (Microsoft.Office.Interop.Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); 
      foreach (Microsoft.Office.Interop.Excel.Workbook _wb in XL.Workbooks) 
      { 
       this.listBox1.Items.Add(_wb.Name.ToString()); 
      } 
     } 
    } 
} 
관련 문제