2016-09-05 4 views
-1
の動的オブジェクト

インタフェース変数の動的オブジェクトの作成に問題があります。インタフェース変数C#

以下は、1つのワークブック、ワークシート、およびセルです。だから私はこのように作成することができます

// excelFileBoにExcelブックの場所とシート名が含まれています。

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 
     } 
    } 
} 
} 
関連する問題