예제 #1
0
        IWorkbook DoMerge(Dictionary <string, string> _sourceFiles, string targetFileName)
        {
            XSSFWorkbook target = new XSSFWorkbook();

            int xlsFileIdx = 0;

            foreach (string strFile in _sourceFiles.Keys)
            {
                xlsFileIdx++;
                XSSFWorkbook sourceXls = new XSSFWorkbook(strFile);
                if (xlsFileIdx == 1)
                {
                    target = new XSSFWorkbook();
                }
                for (int i = 0; i < sourceXls.NumberOfSheets; i++)
                {
                    XSSFSheet sheet1 = sourceXls.GetSheetAt(i) as XSSFSheet;
                    sheet1.CopyTo(target, _sourceFiles[strFile], true, true);
                }
            }
            return(target);
        }
예제 #2
0
파일: Program.cs 프로젝트: xiawei666/npoi-1
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World! Please Wait while processing...");
            //Excel worksheet combine example
            //Note: This example does not check for duplicate sheet names. Your test files should have different sheet names.

            XSSFWorkbook book1   = new XSSFWorkbook(new FileStream("file1.xlsx", FileMode.Open));
            XSSFWorkbook book2   = new XSSFWorkbook(new FileStream("file2.xlsx", FileMode.Open));
            XSSFWorkbook product = new XSSFWorkbook();

            for (int i = 0; i < book1.NumberOfSheets; i++)
            {
                XSSFSheet sheet1 = book1.GetSheetAt(i) as XSSFSheet;
                sheet1.CopyTo(product, sheet1.SheetName, true, true);
            }
            for (int j = 0; j < book2.NumberOfSheets; j++)
            {
                XSSFSheet sheet2 = book2.GetSheetAt(j) as XSSFSheet;
                sheet2.CopyTo(product, sheet2.SheetName, true, true);
            }
            product.Write(new FileStream("test.xlsx", FileMode.Create, FileAccess.ReadWrite));
        }