我正在使用Epplus从一本工作簿中复制一个工作表,并将它粘贴到另一个工作簿中,通过使用下面的代码,我可以成功地复制工作表。
ExcelPackage masterPackage = new ExcelPackage(new FileInfo(@"C:\\Users\\350154\\Desktop\\vb workouts\\testsample.xlsx"));
ExcelPackage pckg = new ExcelPackage(new FileInfo("C:\\Users\\350154\\Desktop\\vb workouts\\as.xlsx"));
string workSheetName = pckg.Workbook.Worksheets[1].Name;
ExcelWorksheet pck = pckg.Workbook.Worksheets[1];
pck.ConditionalFormatting.RemoveAll();
masterPackage.Workbook.Worksheets.Add(workSheetName, pck);
代码复制工作表sucessfully.But,复制的工作表的cells.So值中有公式,而不是在新的excel中复制,请帮助我解决这个问题。
发布于 2017-08-09 00:32:27
如果您只是想将一个电子表格中的值复制到另一个电子表格中的新表中,请尝试如下:
public static void CopySheetValues(string sourcePath, string sheetName, string destPath)
{
using (var src = new ExcelPackage(new FileInfo(sourcePath)))
using (var dest = new ExcelPackage(new FileInfo(destPath)))
{
var wsSrc = src.Workbook.Worksheets[sheetName];
var wsDest = dest.Workbook.Worksheets[wsSrc.Name] ?? dest.Workbook.Worksheets.Add(wsSrc.Name);
for (var r = 1; r <= wsSrc.Dimension.Rows; r++)
{
for (var c = 1; c <= wsSrc.Dimension.Columns; c++)
{
var cellSrc = wsSrc.Cells[r, c];
var cellDest = wsDest.Cells[r, c];
// Copy value
cellDest.Value = cellSrc.Value;
// Copy cell properties
cellDest.Style.Numberformat = cellSrc.Style.Numberformat;
cellDest.Style.Font.Bold = cellSrc.Style.Font.Bold;
// TODO... Add any additional properties that you may want to copy over
}
}
dest.Save();
}
}
更新:更新了示例代码,以显示如何将格式设置从源复制到目标工作表
发布于 2018-05-10 06:36:56
谢谢皮特。但是,在我寻找另一个问题时,我找到了一种将整个工作表复制到另一个工作簿的方法。https://github.com/JanKallman/EPPlus/issues/94
更改下面一行以将工作表添加到工作簿中。
var wsDest = m_GeneratedHeader.Workbook.Worksheets[wsSrc.Name] ?? m_GeneratedHeader.Workbook.Worksheets.Add(wsSrc.Name, wsSrc);
不需要使用这两个“for”循环来迭代行和列来复制每个属性。添加工作表将复制单元格样式、字体样式、合并单元格等。为我工作过。
请注意,这是在EPPlus 4.5.0.1之后引入的。
https://stackoverflow.com/questions/45582359
复制