C# EPPlus 获取多个但独立的列

问题描述 投票:0回答:1

有没有比这更好的方法可以从 C# 中的 EPPlus 获取多个不同的列:

range = sheet.Cells["A:B,E:F"];

更新:我想基于其他变量(如

List<int[]> Columns = {[1,2],[5,6]}
)以编程方式逐步浏览列,而不是使用硬编码字母。我一直在尝试使 range.TakeColumns() 工作,但无法实现。

c# epplus
1个回答
0
投票

你可以这样做:

using OfficeOpenXml;

namespace Test
{
    public partial class Program
    {      
        public static void Main ()
        {
            FileInfo existingFile = new FileInfo ("01.xlsx");
            ExcelPackage package = new ExcelPackage (existingFile);
            ExcelWorksheet sheet = package.Workbook.Worksheets [0];

            var columnPairs = new List<int[]> () {
                new int[] { 1, 2 },
                new int[] { 4, 6 }
            };

            foreach (var pair in columnPairs)
            {
                // Get the ExcelRangeColumn delimited for this pair of columns
                var rangeColumn = sheet.Columns [pair[0], pair[1]];
                Console.WriteLine (rangeColumn.StartColumn.ToString() + " - " + rangeColumn.EndColumn.ToString());

                // Get the associated ExcelRangeBase and browse all cells
                foreach (var cell in rangeColumn.Range)
                    Console.WriteLine (cell);
            }
        }
    }
}

我只是打印每个列范围中每个单元格的名称(对于具有 6 列 x 3 行的示例表):

1 - 2
A1
B1
A2
B2
A3
B3

4 - 6
D1
E1
F1
D2
E2
F2
D3
E3
F3
© www.soinside.com 2019 - 2024. All rights reserved.