熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> ASP編程 >> 正文

在vs2008環境C#對Excel基本操作

2022-06-13   來源: ASP編程 

  環境

  Windows XP

  Microsoft Visual Studio

  office

  網上搜索C#實現excel操作的示例太多了但不知道有多少是經過驗證確實可行才發布出來的也是因為開發需要我找了一些代碼卻發現大多都不能正確執行完畢於是決定補充自己在實踐中遇到的要點以供參考如下示例

  添加的文件頭: 

     using SystemReflection; // 引用這個才能使用Missing字段
     using Excel;

        ExcelApplicationClass excel = new ExcelApplicationClass();
               excelVisible = true;       //激活Excel
            Workbook wBook   = excelWorkbooksAdd(true);
       //     Worksheet wSheet = (Excel_Worksheet)wBookActiveSheet;
            Worksheet wSheet = (ExcelWorksheet)wBookActiveSheet;


                    excelCells[ ] = 本公司電話: + Phone;
                    excelCells[ ] = 本公司傳真: + Zhen;
                    excelCells[ ] = 聯系人: + ComName;
                    excelCells[ ] = 客戶: + CustomerName;
                    excelCells[ ] = 聯系人: + Associate;
                    excelCells[ ] = 戶名:;
                    excelCells[ ] = AccountName;
                    excelCells[ ] = 開戶行:;
                    excelCells[ ] = BranchName;
                    excelCells[ ] = 帳號:;
                    excelCells[ ] = + AccountID;


                       //設置禁止彈出保存和覆蓋的詢問提示框
            excelDisplayAlerts = false;
            excelAlertBeforeOverwriting = false;
            //保存工作薄
          //  wBookSave();
            //每次保存激活的表這樣才能多次操作保存不同的Excel表默認保存位置是在我的文檔

            excelCellsFontSize = ;
            excelCellsFontBold = false;
          //  ExcelRange m_objRange = m_objRangeget_Range( );
            wSheetget_Range(excelCells[ ] excelCells[ ])FontSize = ;
            wSheetget_Range(excelCells[ ] excelCells[ ])FontBold = true;
            wSheetget_Range(excelCells[ ] excelCells[ ])FontColorIndex = ;//此處設為紅色不能用FontColor來設置顏色
          //  m_objRangeCellsFontSize = ;
          //  m_objRangeCellsFontBold = true;

            excelActiveWorkbookSaveCopyAs(filename);


         excelQuit();

      代碼注釋部分只是簡單描述各語句的原由個別的還是值得推敲的

  語句一  Workbook wBook   = excelWorkbooksAdd(true)

  WorkbooksAdd的參數是個object類型通常使用true或null表明工作簿在默認文檔下創建或者使用枚舉值XlWBATemplatexlWBATWorksheet但如果傳入一個excel完整文件名卻相當於打開已有工作簿

  語句二  Worksheet wSheet = (ExcelWorksheet)wBookActiveSheet

  這樣可以操作多個工作表的話實例化之後加入到wBookWorksheets中去如果是打開已存在的工作簿這條語句也可能會報錯最好是調用wBookActiveSheet來獲取或者再加些判斷

  語句三excelActiveWorkbookSaveCopyAs(filename)

  這兩句代碼至關重要而且必不可少否則保存時會彈出是否保存sheetxls的對話框判斷當前激活的表並保存這個表

  語句四 excelQuit()

  這個關閉一直有疑點因為C#操作com非托管對象時憑借Quit()還沒有釋放掉對象excel進程不一定會終止於是有人使用KillProcess()來處理我個人認為這不是一個好主意可能會破壞其它正在執行的excel進程目前我使用app=null;權作安慰吧不過有一點是一定要做到就是在Quit()前不能再有任何更改不然還是會彈出保存的對話框所以退出前確保一定是執行過WorkBook或是Application的Save()方法的

   對於在c#中操作excel應用的方面很多可能還會有些疑問出現知曉來龍去脈的朋友盡量補充以方便大家吧


From:http://tw.wingwit.com/Article/program/ASP/201311/21907.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.