word域 與資料庫的結合

來源:互聯網
上載者:User

 1.建立word模板檔案 person.dot
2.建立web應用程式 加入Microsoft.Office.Interop.Word引用
3.相關範例程式碼
========================
1.建立word模板檔案 person.dot
    用書籤 標示相關欄位的填充位置

2.建立web應用程式 加入Microsoft.Office.Interop.Word引用
    具體添加引用請參看
    http://www.microsoft.com/china/msdn/library/office/office/OfficePrIntopAssFAQ.mspx?mfr=true

3.相關範例程式碼
    以下代碼改編自
    http://blog.ccidnet.com/blog-htm-do-showone-uid-9416-type-blog-itemid-145551.html

protected void Button1_Click(object sender, EventArgs e)
{
  Microsoft.Office.Interop.Word.ApplicationClass appWord = null; //應用程式
  Microsoft.Office.Interop.Word.DocumentClass doc = null; //文檔
  try
  {
    appWord = new ApplicationClass();
    appWord.Visible = false;
    object objTrue = true;
    object objFalse = false;
    object objTemplate = Server.MapPath("person.dot"); //模板路徑
    object objDocType = WdDocumentType.wdTypeDocument;
    doc = (DocumentClass)appWord.Documents.Add(ref objTemplate, ref objFalse, ref objDocType, ref objTrue);
    //第一步產生word文檔
    //定義書籤變數
    object obDD_Name = "bm_Name"; //姓 名
    object obDD_Sex = "bm_Sex"; //性 別
    object obDD_Birthday = "bm_Birthday"; //出生年月
    //第二步 讀取資料,填充資料集
    System.Data.DataTable dt = new DataTable();
    dt.Columns.Add("p_Name");
    dt.Columns.Add("p_Sex");
    dt.Columns.Add("p_Birthday");
    DataRow dr = dt.NewRow();
    dr["p_Name"] = "張三";
    dr["p_Sex"] = "男";
    dr["p_Birthday"] = "1980-01-01";
    dt.Rows.Add(dr);
    //第三步 給書籤賦值
    //給書籤賦值
    doc.Bookmarks.get_Item(ref obDD_Name).Range.Text = dt.Rows[0]["p_Name"].ToString(); //姓 名
    doc.Bookmarks.get_Item(ref obDD_Sex).Range.Text = dt.Rows[0]["p_Sex"].ToString();//性 別
    doc.Bookmarks.get_Item(ref obDD_Birthday).Range.Text = dt.Rows[0]["p_Birthday"].ToString();//年齡
    //第四步 產生word
    object filename = Server.MapPath("~") + "//" + dt.Rows[0]["p_Name"].ToString() + ".doc";
    object miss = System.Reflection.Missing.Value;
    doc.SaveAs(ref filename, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);
    object missingValue = Type.Missing;
    object doNotSaveChanges = WdSaveOptions.wdDoNotSaveChanges;
    doc.Close(ref doNotSaveChanges, ref missingValue, ref missingValue);
    appWord.Application.Quit(ref miss, ref miss, ref miss);
    doc = null;
    appWord = null;
  }
  catch (System.Exception ex)
  {
    //捕捉異常,如果出現異常則清空執行個體,退出word,同時釋放資源
    string aa = ex.ToString();
    object miss = System.Reflection.Missing.Value;
    object missingValue = Type.Missing;
    object doNotSaveChanges = WdSaveOptions.wdDoNotSaveChanges;
    doc.Close(ref doNotSaveChanges, ref missingValue, ref missingValue);
    appWord.Application.Quit(ref miss, ref miss, ref miss);
    doc = null;
    appWord = null;
  }
}

-----
以上代碼在運行時 如遭遇80070005錯誤
 
解決方案一:
  1. 控制台-》管理工具-》元件服務-》電腦-》我的電腦-》DCom配置-》找到Microsoft Word文檔, 之後, 單擊屬性開啟此應用程式的屬性對話方塊。
  2. 單擊標識選項卡,然後選擇互動式使用者。
  3. 單擊"安全"選項卡,分別在"啟動和啟用許可權"和"存取權限"組中選中"自訂", 然後, 自訂->編輯->添加ASP.NET賬戶和IUSER_電腦名稱
  4. 確保允許每個使用者訪問,然後單擊確定。
  5. 單擊確定關閉 DCOMCNFG。

解決方案二:
  如果上述方法不能解決問題,就應該是許可權問題,請嘗試用下面的方法:
  在web.config中使用身份類比,在<system.web>節中加入<identity impersonate="true" userName="你的使用者名稱" password="密碼"/>

詳細解決辦法請參看
  http://blog.csdn.net/lizhizhe2000/archive/2007/03/16/1531417.aspx

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/my98800/archive/2009/07/20/4360805.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.