How do I merge multiple excel files to a single excel file

后端 未结 3 1416
情话喂你
情话喂你 2021-01-23 13:26

So I was trying to make an excel sheet aggregator. In my line of work we get people who send us a bunch of individual excel files that are all related each with only 1 sheet use

相关标签:
3条回答
  • 2021-01-23 13:58

    In your inner loop you add a new worksheet to your 'finalized' workbook ('sheet') AND copy a worksheet before it for every source sheet. So every 'sheet' created by your Add command will be empty as in fact you create two sheets for each source sheet. Another problem is, that - as you mentioned - arrays in excel are 1-based; so you have to loop until j <= count not j < count.

    So I think that code would work better:

    Excel.Worksheet dummy = finalized.Worksheets[1];
    
    for (int i = 2; i <= excel.Workbooks.Count; i++)
    {
        int count = excel.Workbooks[i].Worksheets.Count;
    
        for (int j = 1; j <= count; j++)
        {
            Excel._Worksheet pastee = (Excel._Worksheet)excel.Workbooks[i].Worksheets[j];
            pastee.Copy(dummy);
        }
    }
    
    dummy.Delete();
    
    0 讨论(0)
  • 2021-01-23 14:08

    Try the links below

    How to merge two excel files into one with their sheet names?

    http://www.codeproject.com/Tips/715976/Solutions-to-Merge-Multiple-Excel-Worksheets-int

    0 讨论(0)
  • 2021-01-23 14:14

    The simplest way to merge worksheets into one is through a third part component called Spire.Xls. It’s a standalone .NET component.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Spire.Xls;
    using System.Data;
    
    
    namespace Spire.XLS
    {
        class Program
        {
            static void Main(string[] args)
        {
    
            Workbook workbook = new Workbook();
            //load the first workbook
            workbook.LoadFromFile(@"merge1.xlsx");
            //load the second workbook
            Workbook workbook2 = new Workbook();
            workbook2.LoadFromFile(@"merge2.xlsx");
    
            //import the second workbook's worksheet into the first workbook using a datatable
            Worksheet sheet2 = workbook2.Worksheets[0];
            DataTable dataTable = sheet2.ExportDataTable();
            Worksheet sheet1 = workbook.Worksheets[0];
            sheet1.InsertDataTable(dataTable, false, sheet1.LastRow + 1, 1);
    
    
            //save the workbook
            workbook.SaveToFile("result.xlsx");
        }
        }
    }
    
    0 讨论(0)
提交回复
热议问题