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() + "秒!");
    
    
    
    
    
    
    
    
    
            }
        }
    }
    

      

  • 相关阅读:
    三星t5拆解
    一条 SQL 引发的事故,同事直接被开除!!
    Git 不能提交空目录?我也是醉了!
    Redis 6.0.8 紧急发布,请尽快升级!
    String.format() 图文详解,写得非常好!
    为什么 Redis 要比 Memcached 更火?
    Lambda 表达式入门,这篇够了!
    天啊,为什么我的 Redis 变慢了。。
    写出一手烂代码的 19 条准则!
    Redis 面试一定要知道的 3 个 问题!
  • 原文地址:https://www.cnblogs.com/nextseven/p/9057984.html
Copyright © 2011-2022 走看看