Пропуск первых двух строк электронной таблицы Excel при записи в нее - PullRequest
0 голосов
/ 05 мая 2020

У меня есть метод записи данных в мою электронную таблицу Excel. Я хотел бы пропустить первые 2 строки перед записью данных. Первые две строки содержат заголовки. Как пропустить первые 2 ряда?

            public ExcelWorksheet WriteToExcelWorksheet(ExcelPackage package, IEnumerable<IEnumerable<string>> data)
            {
                var rows = data.ToList();
                var ws = package.Workbook.Worksheets[0];

                for (var r = 0; r < rows.Count; r++)
                {
                    var row = rows[r].ToList();
                    for (var c = 0; c < row.Count; c++)
                    {
                        if (!string.IsNullOrWhiteSpace(row[c]))
                        {
                            if (decimal.TryParse(row[c], out var d))
                            {
                                ws.Cells[r + 1, c + 1].Value = d;
                            }
                            else
                            {
                                ws.Cells[r + 1, c + 1].Value = row[c];
                            }
                        }
                    }
                }

                return ws;
            }

1 Ответ

1 голос
/ 05 мая 2020

Просто начните писать строки соответственно:)

Так, например, в этой строке:

ws.Cells[r + 1, c + 1].Value = d;

make

ws.Cells[r + 3, c + 1].Value = d;

имея:

public ExcelWorksheet WriteToExcelWorksheet(ExcelPackage package, IEnumerable<IEnumerable<string>> data)
{
    var rows = data.ToList();
    var ws = package.Workbook.Worksheets[0];

    for (var r = 0; r < rows.Count; r++)
    {
        var row = rows[r].ToList();
        for (var c = 0; c < row.Count; c++)
        {
            if (!string.IsNullOrWhiteSpace(row[c]))
            {
                if (decimal.TryParse(row[c], out var d))
                {
                    ws.Cells[r + 3, c + 1].Value = d;
                }
                else
                {
                    ws.Cells[r + 3, c + 1].Value = row[c];
                }
            }
        }
    }

    return ws;
}
...