是否可以使用Epplus在Excel中复制行(包含数据,合并,样式)?

Ren*_*nov 15 .net c# excel epplus

问题是我需要使用整个集合的单个模板多次从集合中将数据插入Excel.

using (var pckg = new ExcelPackage(new FileInfo(association.TemplatePath)))
{
    var workSheet = pckg.Workbook.Worksheets[1];
    var dataTable = WorksheetToDataTable(workSheet);
    /*Some stuff*/
    FindAndReplaceValue(workSheet, dictionary, row);
}

private DataTable WorksheetToDataTable(ExcelWorksheet oSheet)
{
    int totalRows = oSheet.Dimension.End.Row;
    int totalCols = oSheet.Dimension.End.Column;
    DataTable dt = new DataTable(oSheet.Name);
    DataRow dr = null;
    for (int i = 1; i <= totalRows; i++)
    {
        if (i > 1) dr = dt.Rows.Add();
        for (int j = 1; j <= totalCols; j++)
        {
            if (i == 1)
                dt.Columns.Add((oSheet.Cells[i, j].Value ?? "").ToString());
            else
                dr[j - 1] = (oSheet.Cells[i, j].Value ?? "").ToString();
        }
    }
    return dt;
}
Run Code Online (Sandbox Code Playgroud)

第一张图片 - 我的模板.第二 - 收集的第一个元素(包括数据,样式,合并).第三 - 其他元素只有数据

这是我的模板 集合的第一个元素有数据,样式,合并 除了数据之外,其他元素都没有

Ren*_*nov 24

我只是制作了行的副本

    for (int i = 0; i < invoiceList.Count; i++)
    {
        workSheet.Cells[1, 1, totalRows, totalCols].Copy(workSheet.Cells[i * totalRows + 1, 1]);
    }
Run Code Online (Sandbox Code Playgroud)

  • @kassi,您可以使用上面列出的解决方案复制样式等单元格.如果你想复制范围只需使用`workSheet.Cells ["A1:I1"].复制(workSheet.Cells ["A4:I4"]);`结果:http://imgur.com/Ow4UUv5 (2认同)