簡體   English   中英

是否可以使用 Epplus 在 Excel 中復制行(帶有數據、合並、樣式)?

[英]Is it possible to copy row (with data, merging, style) in Excel using 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;
}

第一張圖片 - 我的模板。 第二 - 集合的第一個元素(帶有數據、樣式、合並)。 第三 - 其他元素只有數據

這是我的模板集合的第一個元素有數據、樣式、合並除了數據,其他元素一無所獲

我只是復制了行

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

如果您想復制范圍,只需使用:

workSheet.Cells["A1:I1"].Copy(workSheet.Cells["A4:I4"]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM