<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [提供源碼下載]在大型軟件中用Word做報表:書簽的應用(提供一種思路)

      [提供源碼下載]在大型軟件中用Word做報表:

      書簽的應用(提供一種思路)

       

      ——通過知識共享樹立個人品牌。

       

       

      報表基本上在每一個項目中占有很大的比例,做報表也是我們開發(fā)人員必須過的坎,現(xiàn)在市面上各種類型的報表,我們到底應該如何選擇呢?每一種報表都有他自己優(yōu)秀的一面,我在項目開發(fā)中,一般用Grid++Report做報表,對于復雜的,量大的也用ExcelWord來做,大家也可以分享一下你們在項目中用到的報表軟件!

      現(xiàn)在有這樣一個需求,比如有一個幾十頁的合同(合同內(nèi)容每年會有所不同),合同中要填的數(shù)據(jù)(如:甲方、乙方什么的)從數(shù)據(jù)庫中得到,各個頁都有可能填寫相關(guān)數(shù)據(jù),最后生成合同打印出來,對于這樣的需求,我想要用水晶報表等來做相當麻煩。

      本文給大家提供一種思路,就是用Word來做這種類型的報表,具體來說,就是用“書簽”定位到Word中要填數(shù)據(jù)的地方,然后把數(shù)據(jù)填上去,再把word導出來,靈活應用,以不變應萬變。

       

      下面來看具體操作。

      步驟一:準備好Word合同模板,在需要填寫數(shù)據(jù)的地方插入書簽(不明白的,可以下載源碼后自己慢慢看)后保存應模板文件,如下圖:

       

       

          步驟二:新建一個WinForm項目,添加WordDll引用,如下圖:

       

       

         步驟三:編寫代碼,把相關(guān)數(shù)據(jù)寫入到書簽中,代碼如下:

        

              private void btnWriteDataToWord_Click(object sender, EventArgs e)
              {
                  
      object missingValue = System.Reflection.Missing.Value;
                  
      object fileName = System.Windows.Forms.Application.StartupPath + "\\Test.doc";
                  
      if (System.IO.File.Exists(fileName as string))
                  {                
                      
      object myTrue = false;
                      Microsoft.Office.Interop.Word.Application oWord 
      = new Microsoft.Office.Interop.Word.ApplicationClass();
                      Microsoft.Office.Interop.Word.Document oDoc;
                      oDoc 
      = oWord.Documents.Open(ref fileName, ref missingValue, ref myTrue,
                          
      ref missingValue, ref missingValue, ref missingValue,
                          
      ref missingValue, ref missingValue, ref missingValue,
                          
      ref missingValue, ref missingValue, ref missingValue,
                          
      ref missingValue, ref missingValue, ref missingValue,
                          
      ref missingValue);

                      MessageBox.Show(oDoc.Bookmarks.Count.ToString()); 
      //得到word中的所有書簽個數(shù)

                      
      //寫入Word文檔
                      object[] oBookMarks = { "出讓方名稱""出讓方通訊地址""出讓方郵政編碼" };//Word中的書簽
                      string[] sValues = { "測試出讓方名稱""測試出讓方通訊地址43號""測試出讓方郵政編碼432123" };   //給書簽的值
                      for (int iTemp = 0; iTemp < oBookMarks.Length; iTemp++)
                      {

                          Microsoft.Office.Interop.Word.Range tmpRng 
      = oWord.ActiveDocument.Bookmarks.get_Item(ref oBookMarks[iTemp]).Range;
                          tmpRng.Text 
      = sValues[iTemp].ToString(); //通過tmpRng.Text還可以得到標簽處的數(shù)據(jù),在這兒是設置它的數(shù)據(jù)
                          object oRng = tmpRng;
                          oDoc.Bookmarks.Add(oBookMarks[iTemp].ToString(), 
      ref oRng);

                      }

                      
      object bSaveChange = true;                

                      
      //如果"D:\Word"目錄不存在,就創(chuàng)建
                      if (!Directory.Exists("D:\\Word")) 
                      {
                          Directory.CreateDirectory(
      "D:\\Word"); //創(chuàng)建目錄
                      }
                       
                      
      string guid = System.Guid.NewGuid().ToString();
                      
      object sFileName = @"D:/Word/出讓合同" + guid + ".doc";

                      
      //把寫好的合同另存為
                      if (oDoc.SaveFormat == (int)Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatDocument)
                      {
                          oDoc.SaveAs(
      ref sFileName, ref missingValue, ref myTrue,
                               
      ref missingValue, ref missingValue, ref missingValue,
                               
      ref missingValue, ref missingValue, ref missingValue,
                               
      ref missingValue, ref missingValue, ref missingValue,
                               
      ref missingValue, ref missingValue, ref missingValue,
                               
      ref missingValue);                    
                       }
                      oDoc.Close(
      ref bSaveChange, ref missingValue, ref missingValue);
                      oWord.Quit(
      ref bSaveChange, ref missingValue, ref missingValue);
                  }
                  
      else
                  {
                      MessageBox.Show(
      "合同模板不存在!");
                      
      return;
                  }
                  
      //object tmp = "msr_01";
                  
      //Word.Range tmpRng = oWord.ActiveDocument.Bookmarks.get_Item(ref tmp).Range;
                  
      //tmpRng.Text = "China";
                  ////由于附值以后書簽自動消除,為了以后便于修改,需要把書簽再自動生成一個
                  //object oRng = tmpRng;
                  
      //oDoc.Bookmarks.Add(tmp.ToString(), ref oRng);
                  
      //object bSaveChange = true;
                  
      //oDoc.Close(ref bSaveChange, ref missingValue, ref missingValue);
              }
          }

       

          步驟四:查看效果,如下圖所示:

           

       

       

      源碼下載(下載前請評論與推薦下,感謝)

       

      本文只是提供一種解決問題的思路,歡迎大家拍磚,也分享一下你們的經(jīng)驗。

       

      posted @ 2011-08-24 10:20  .NET快速開發(fā)框架  閱讀(7560)  評論(106)    收藏  舉報
      主站蜘蛛池模板: 亚洲国产天堂久久综合226114| 亚洲欧洲无码av电影在线观看 | 日本中文字幕有码在线视频| 摸丰满大乳奶水www免费| 亚洲sm另类一区二区三区| 国产精品自拍三级在线观看| 国产高清视频在线播放www色| 国产亚洲精品VA片在线播放| 麻豆精产国品一二三区区| 九九热精品视频在线免费| 色成人亚洲| 亚洲欧美综合中文| 四虎国产精品永久地址99| 污污网站18禁在线永久免费观看 | 日本少妇xxx做受| 欧美特级午夜一区二区三区 | 又黄又爽又色视频免费| 成人精品区| 亚洲综合国产精品第一页| 午夜免费视频国产在线| 欧美人与动牲交精品| 亚洲av高清一区二区三| 日本夜爽爽一区二区三区| 国产精品久久久久无码网站| 无人区码一码二码三码区| 日日碰狠狠添天天爽超碰97| 中文 在线 日韩 亚洲 欧美| 亚洲高清aⅴ日本欧美视频| 日韩高清亚洲日韩精品一区二区| 男女一边摸一边做爽爽| 免费久久人人香蕉av| 99久久婷婷国产综合精品青草漫画 | 日韩有码中文字幕av| 中文字幕av无码免费一区| 五月天丁香婷婷亚洲欧洲国产| 日韩在线视频一区二区三| 亚洲区一区二区三区精品| 国产一区二区三区怡红院| 国产首页一区二区不卡| 国产乱码精品一区二区上| 艳妇乳肉豪妇荡乳xxx|