How to get range in EPPlus

喜欢而已 提交于 2019-12-14 00:55:17

问题


Does anyone know how to execute the following in EPPlus.

The following is the way when using VSTO. I'm trying to get some specific ranges from a worksheet.

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

回答1:


You can use this

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:


I am not fully familiar with `get_Range' but based on the documention it works just like the cells object of EPPlus. So this:

[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();
    }
}

results in this in the output window:

{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}


来源:https://stackoverflow.com/questions/31433189/how-to-get-range-in-epplus

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!