asp.net操作EXCEL宏

來源:互聯網
上載者:User
CSHARP操作宏
 1        /**//// <summary>
 2        /// 根據傳入的報表名稱及相應參數調用Excel的宏產生報表
 3        /// 如果成功則返回空,否則返回一包含出錯原因的字串
 4        /// </summary>
 5        /// <param name="reportName">要產生的報表名稱</param>
 6        /// <param name="rptParams">產生該報表需要的參數列表</param>
 7        /// <returns></returns>
 8        public static string CreateReports(string rptPath,string rptName,string rptNamefix,Hashtable rptParams)
 9        {
10            Excel.Application oXL;
11
12            string sResult = null;
13            try
14            {
15                // Start a Excel application
16                oXL = new  Excel.Application();
17                
18                //隱藏Excel 
19                oXL.Visible = false;
20            }
21            catch( Exception theException)
22            {
23                return String.Concat("在請求Excel服務時出錯!",theException.Message);
24            }
25            try
26            {
27                //開啟主Excel檔案
28                if (SystemConfig.OfficeVerstring=="2003")
29                {
30                    oXL.Workbooks.Open(rptPath+"\\oilScoreReports\\templates\\oilScoreReports.xla",Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);
31                    //調用VBA產生報表
32                    oXL.Run("CreateReports.CreateReports",rptPath,rptName,rptParams["DWMC"],"",rptParams["rptDate"],rptParams["strCnt"],rptParams["userID"],"主管","審核","製表",rptNamefix,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);    
33                }
34//                else
35//                {
36//                    oXL.Workbooks.Open(rptPath+"\\oilScoreReports\\templates\\oilScoreReports.xla",Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);
37//                    //調用VBA產生報表
38//                    oXL.Run("CreateReports.CreateReports",rptPath,rptName,rptParams["DWMC"],"",rptParams["rptDate"],rptParams["strCnt"],rptParams["userID"],"主管","審核","製表",rptNamefix,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);
39//                }
40                
41            }
42            catch( Exception theException )
43            {                
44                //殺掉Excel進程
45                sResult = "產生報表時出錯: ";
46                sResult = String.Concat( sResult, theException.Message );                
47            }
48            finally
49            {
50                oXL.Quit();
51                Marshal.ReleaseComObject(oXL);
52                GC.Collect();
53            }
54            return sResult;
55
56        }

===============
這裡的內容是回下面那個朋友的.
1、在C#裡面調用宏這是必須的。並且這個也很簡單,就按上面我說的就可以做到。
2、在宏裡面控制表單裡面的按鈕的選擇情況。最後調用宏即可達到目的。
3、具體貼圖如下:

                                            圖1

                                            圖2
4、不知道這樣能不能達到你的要求。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.