繁体   English   中英

在Excel工作簿C#中交换工作表

[英]Swap worksheets within the excel workbook c#

例如,查看图片

在此处输入图片说明

我想将工作表“ Sheet1”交换为“ Sheet3”。

我的代码使用EPPlus:

            ExcelPackage masterPackage = new ExcelPackage();
            foreach (var file in files)
            {
                ExcelPackage pckg = new ExcelPackage(new FileInfo(file));

                foreach (var sheet in pckg.Workbook.Worksheets)
                {
                    //check name of worksheet, in case that worksheet with same name already exist exception will be thrown by EPPlus

                    string workSheetName = sheet.Name;
                    foreach (var masterSheet in masterPackage.Workbook.Worksheets)
                    {
                        if (sheet.Name == masterSheet.Name)
                        {
                            workSheetName = string.Format("{0}_{1}", workSheetName, DateTime.Now.ToString("yyyyMMddhhssmmm"));
                        }
                    }

                    //add new sheet

                    if (sheet.Name.Contains("MB_STORE_POTENTIALvsWALLET"))
                    {
                        masterPackage.Workbook.Worksheets.Add(workSheetName, sheet);

                    }
                    else
                    {
                        masterPackage.Workbook.Worksheets.Add(workSheetName, sheet);
                        masterPackage.Workbook.Worksheets.MoveToStart(1);
                    }
                }
            }
            masterPackage.SaveAs(new FileInfo(resultFile));

这个怎么做? 任何建议请..

如果只需要交换图纸(我是说不需要处理内容),则重命名图纸应该很简单。

  1. 将“ Sheet1”重命名为“ adsf”
  2. 将“ Sheet3”重命名为“ Sheet1”
  3. 将“ adsf”重命名为“ Sheet3”

Sheets(“ Sheet1”)。Name =“ adsf”

Sheets(“ Sheet3”)。Name =“ Sheet1”

Sheets(“ adsf”)。Name =“ Sheet3”

这工作正常:

ExcelPackage masterPackage = new ExcelPackage();
foreach (var file in files)
{
    ExcelPackage pckg = new ExcelPackage(new FileInfo(file));
    foreach (var sheet in pckg.Workbook.Worksheets)
    {
        //check name of worksheet, in case that worksheet with same name already exist exception will be thrown by EPPlus
        string workSheetName = sheet.Name;
        foreach (var masterSheet in masterPackage.Workbook.Worksheets)
        {
            if (sheet.Name == masterSheet.Name)
            {
                workSheetName = string.Format("{0}_{1}", workSheetName, DateTime.Now.ToString("yyyyMMddhhssmmm"));
            }
        }

        //add new sheet
        if (sheet.Name.Contains("MB_STORE_POTENTIALvsWALLET"))
        {
             masterPackage.Workbook.Worksheets.Add(workSheetName, sheet);
        }
        else
        {
             masterPackage.Workbook.Worksheets.Add(workSheetName, sheet);
             masterPackage.Workbook.Worksheets.MoveBefore(2, 1);
        }
    }
}
masterPackage.SaveAs(new FileInfo(resultFile));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM