是否可以使用Epplus在Excel中复制行(使用数据,合并,样式)? [英] Is it possible to copy row (with data, merging, style) in Excel using Epplus?

查看:1529
本文介绍了是否可以使用Epplus在Excel中复制行(使用数据,合并,样式)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

The problem is that I need to insert data into Excel from the collection several times using a single template for the entire collection.

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

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

First picture - My template. Second - First element of collection (with data, style, merging). Third - Other elements has only data



推荐答案

我只是复制一行

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

这篇关于是否可以使用Epplus在Excel中复制行(使用数据,合并,样式)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆