2015-07-15 19 views
5

Kann jemand folgendes in EPPlus ausführen?Wie erreiche ich die Reichweite in EPPlus?

Folgendes ist die Vorgehensweise bei der Verwendung von VSTO. Ich versuche, bestimmte Bereiche von einem Arbeitsblatt zu erhalten.

sheet.get_Range("7:9,12:12,14:14", Type.Missing) 

Antwort

4

können Sie diese verwenden

ExcelPackage pck = new ExcelPackage() 
var ws = pck.Workbook.Worksheets.Add("Sheet1"); 
ExcelRange cells = ws.Cells[1, 1, 1, 10];//get 10 cells in row 1 
2

Ich bin nicht vertraut mit `get_Range‘, sondern auf der Grundlage der Dokumention es funktioniert genauso wie die Zellen von EPPlus widersprechen. dies so:

[TestMethod] 
public void Multi_Range_Test() 
{ 

    //Throw in some data 
    var datatable = new DataTable("tblData"); 
    datatable.Columns.Add(new DataColumn("Col1", typeof(int))); 
    datatable.Columns.Add(new DataColumn("Col2", typeof(int))); 
    datatable.Columns.Add(new DataColumn("Col3", typeof(int))); 

    for (var i = 0; i < 20; i++) 
    { 
     var row = datatable.NewRow(); 
     row[0] = i; 
     row[1] = i * 10; 
     row[2] = i * 100; 
     datatable.Rows.Add(row); 
    } 

    var existingFile2 = new FileInfo(@"c:\temp\temp.xlsx"); 
    if (existingFile2.Exists) 
     existingFile2.Delete(); 

    using (var package = new ExcelPackage(existingFile2)) 
    { 
     //Add the data 
     var sheet = package.Workbook.Worksheets.Add("Sheet1"); 
     sheet.Cells.LoadFromDataTable(datatable, true); 

     var range = sheet.Cells["7:9,12:12,14:14"]; 
     foreach (var rangeBase in range) 
     { 
      Console.WriteLine("{{{0} : {1}}}", rangeBase.Address, rangeBase.Value); 
     } 

     //Save the file 
     package.Save(); 
    } 
} 

ergibt dies im Ausgabefenster:

{A7 : 5} 
{B7 : 50} 
{C7 : 500} 
{A8 : 6} 
{B8 : 60} 
{C8 : 600} 
{A9 : 7} 
{B9 : 70} 
{C9 : 700} 
{A12 : 10} 
{B12 : 100} 
{C12 : 1000} 
{A14 : 12} 
{B14 : 120} 
{C14 : 1200} 
Verwandte Themen