zoukankan      html  css  js  c++  java
  • 20180518VSTO多簿单表汇总外接程序按钮

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Microsoft.Office.Tools.Ribbon;
    using System.Diagnostics;
    using Excel = Microsoft.Office.Interop.Excel;
    using Office = Microsoft.Office.Core;
    using System.Windows.Forms;
    using System.IO;
    
    namespace GatherData
    {
        public partial class Ribbon1
        {
            private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
            {
    
            }
    
            private void ButtonGather_Click(object sender, RibbonControlEventArgs e)
            {
                Excel.Application xlApp = Globals.ThisAddIn.Application;
                
                Excel.Workbook wb = xlApp.ActiveWorkbook;
                Excel.Worksheet sht = (Excel.Worksheet)wb.ActiveSheet;
                sht.Cells.Clear();
                TimeSpan StartTime = new TimeSpan(DateTime.Now.Ticks); ;
                xlApp.ScreenUpdating = false;
                xlApp.DisplayAlerts = false;
                Excel.Workbook openWb;
                Excel.Worksheet openSht;
                Excel.Range rng;
                int index = 0;
                Office.FileDialog fd = xlApp.FileDialog[Office.MsoFileDialogType.msoFileDialogFolderPicker];
                fd.InitialFileName = xlApp.ActiveWorkbook.Path;
                if (fd.Show() == -1)
                {
                    StartTime = new TimeSpan(DateTime.Now.Ticks);
                    string folderPath = fd.SelectedItems.Item(1);
                    string[] filePaths = Directory.GetFiles(folderPath, "*.xls*");
                    foreach (string filepath in filePaths)
                    {
                        if (filepath != wb.FullName)
                        {
                            // Debug.Print(filepath);
                            index++;
                            openWb = xlApp.Workbooks.Open(filepath);
                            openSht = openWb.Worksheets[1];
                            long endrow = openSht.Cells[openSht.Rows.Count, 3].End(Excel.XlDirection.xlUp).Row;
                            if (index == 1)
                            {
                                rng = openSht.Range[openSht.Cells[1, 1], openSht.Cells[endrow, 17]];
                                rng.Copy(sht.Cells[1, 1]);
                            }
                            else
                            {
                                rng = openSht.Range[openSht.Cells[3, 1], openSht.Cells[endrow, 17]];
                                long nextRow = sht.Cells[sht.Rows.Count, 1].End(Excel.XlDirection.xlUp).Row + 1;
                                rng.Copy(sht.Cells[nextRow, 1]);
                            }
    
                            xlApp.StatusBar = "正在汇总第" + index + "个文件,请耐心等候!";
    
                            openWb.Close(false, Type.Missing, Type.Missing);
                        }
                    }
                }
    
                xlApp.ScreenUpdating = true;
                xlApp.DisplayAlerts = true;
                xlApp.StatusBar = false;
                TimeSpan EndTime = new TimeSpan(DateTime.Now.Ticks);
                TimeSpan duration = StartTime.Subtract(EndTime).Duration();
    
                MessageBox.Show("汇总完成,耗时:" +duration.Minutes.ToString()+"分"+ duration.Seconds.ToString() + "秒!");
    
    
    
    
    
    
    
    
    
            }
        }
    }
    

      

  • 相关阅读:
    POJ 1426 Find The Multiple(数论——中国同余定理)
    POJ 2253 Frogger(Dijkstra变形——最短路径最大权值)
    POJ 3790 最短路径问题(Dijkstra变形——最短路径双重最小权值)
    POJ 3278 Catch That Cow(模板——BFS)
    HDU 1071 The area
    HDU 1213 How Many Tables(模板——并查集)
    POJ 1611 The Suspects
    light oj 1214 Large Division
    POJ 1258 Agri-Net(Prim算法求解MST)
    POJ 2387 Til the Cows Come Home(模板——Dijkstra算法)
  • 原文地址:https://www.cnblogs.com/nextseven/p/9057984.html
Copyright © 2011-2022 走看看