2016-09-05 1 views
-1
에 대한 동적 개체

인터페이스 변수에 대한 동적 개체를 만드는 데 문제가 있습니다.인터페이스 변수 C#

다음은 통합 문서, 워크 시트 및 셀입니다. 그러면 나는 이렇게 만들 수 있습니다.

// excelFileBo에는 엑셀 통합 문서 위치와 시트 이름이 포함되어 있습니다.

List<ExcelFileBo> excelFileBo ; 
    IWorkbook wbi1 = workbookSet.Workbooks.Open(exFileBo.WBLocation); 
    SpreadsheetGear.IWorksheet ws1 = wbi1.Worksheets[exFileBo.WBSheetName]; 
    SpreadsheetGear.IRange wc1 = ws1.Cells; 

그러나 여러 통합 문서, 워크 시트 및 셀에 대한 개체를 만드는 방법은 무엇입니까?

foreach (ExcelFileBo exFileBo in excelFileBo) 
      { 
       if (System.IO.File.Exists(exFileBo.WBLocation)) 
       { 
        // how to create IWorkbook objects,IWorksheet object and IRange dynamically for all excel workbooks. 
       }     
      } 

제발 도와주세요.

+2

모음을 사용하려는처럼 잘 그것은 소리처럼 작성합니다

IRange

를 사용하여 세포를 만드는 "동적 객체는"여기 와서 어디서 볼 수 없습니다. 질문을 분명히 해주시겠습니까? –

답변

0

실제로 첫 번째 단계는 데이터베이스에서 필요한 모든 정보를 읽는 것입니다. 그럼 그냥 ...이

string workSheetSQL = "Select * From [WorkSheetTable]"; 
using (SqlConnection cnn = new SqlConnection("connection string here")) 
{ 
using (SqlCommand sheetCommand = new SqlCommand(workSheetSQL, cnn)) 
{ 
    using (SqlDataReader sheetReader = sheetCommand.ExecuteReader()) 
    { 
     while (sheetReader.Read()) 
     { 
      SpreadsheetGear.IWorkbook workbook = SpreadsheetGear.Factory.GetWorkbook(); 
      SpreadsheetGear.IWorksheet worksheet = workbook.Worksheets["Sheet1"]; 
      SpreadsheetGear.IRange cells = worksheet.Cells; 

      // Set the worksheet name. 
      worksheet.Name = sheetReader["WBSheetName"].ToString(); 
      //I assume FunctionWBId value is foreign key for cell Table, otherwise remove WHERE clause from following sql query 
      string cellsSQL = "Select * From [CellsTable] where FunctionWBId = "+sheetReader["FunctionWBId"].ToString(); 
      // Load cell values. 

      using (SqlCommand cellCommand = new SqlCommand(cellsSQL, cnn)) 
      { 
       using (SqlDataReader cellReader = cellCommand.ExecuteReader()) 
       { 
        while (cellReader.Read()) 
        { 
         cells[cellReader["ExcelCellNo"]ToString()].Value = cellReader["IOValue"].ToString(); 
         //Add more properties to each cell if you wish in the same way 
        } 
       }     
      } 
      workbook.SaveAs(sheetReader["WBLocation"].ToString()); 
      //Add more properties to workbook if you wish in the same way 
     } 
    } 
} 
}