?/// <summary>
??? /// 調用模板生成word
??? /// </summary>
??? /// <param name="templateFile">模板文件</param>
??? /// <param name="fileName">生成的具有模板樣式的新文件</param>
///<param name="dt">需插入到文檔中的數據 </param>
??? public void ExportWord(string templateFile, string fileName,DataTable dt)
??? {
??????? try
??????? {
??????????? Word.Application app = new Word.Application(); //生成word程序對象
??????????? //模板文件
??????????? string TemplateFile = templateFile;
??????????? //生成的具有模板樣式的新文件
??????????? string FileName = fileName;
??????????? //模板文件拷貝到新文件
??????????? File.Copy(TemplateFile, FileName);
??????????? //生成documnet對象
??????????? Word.Document doc = new Word.Document();
??????????? object Obj_FileName = FileName;
??????????? object Visible = false;
??????????? object ReadOnly = false;
??????????? object missing = System.Reflection.Missing.Value;
??????????? //打開文件
??????????? doc = app.Documents.Open(ref Obj_FileName, ref missing, ref ReadOnly, ref missing,
??????????????? ref missing, ref missing, ref missing, ref missing,
??????????????? ref missing, ref missing, ref missing, ref Visible,
??????????????? ref missing, ref missing, ref missing,
??????????????? ref missing);
??????????? doc.Activate();
??????????? int WordNum = 18;//書簽個數
??????????? //將光標轉到模板中定義的書簽的位置,插入所需要添加的內容,循環次數與書簽個數相符
??????????? for (int WordIndex = 1; WordIndex <= WordNum; WordIndex++)
??????????? {
??????????????? object WordMarkName = dt.Columns[WordIndex-1].ToString();//word模板中的書簽名稱
??????????????? object what = Word.WdGoToItem.wdGoToBookmark;
??????????????? doc.ActiveWindow.Selection.GoTo(ref what, ref missing, ref missing, ref WordMarkName);//光標轉到書簽的位置
??????????????? doc.ActiveWindow.Selection.TypeText(dt.Rows[0][""+dt.Columns[WordIndex-1].ToString()+""].ToString());//插入的內容,插入位置是word模板中書簽定位的位置
??????????????? //doc.ActiveWindow.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft;//設置當前定位書簽位置插入內容的格式
??????????????? //doc.ActiveWindow.Selection.TypeParagraph();//回車換行
??????????? }
??????????? //輸出完畢后關閉doc對象
??????????? object IsSave = true;
??????????? doc.Close(ref IsSave, ref missing, ref missing);
??????? }
??????? catch (Exception Ex)
??????? {
??????????? Response.Write(Ex.ToString());
??????????? return;
??????? }
??? }
//調用生成Word文檔
?string templateFile = @"E:\Word模板.doc";
??????????????? //生成的具有模板樣式的新文件
??????????????? string fileName = @"E:\生成文檔名" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".doc";??????????????
??????????????? ExportWord(templateFile, fileName, dt);
word 文檔需根據需求加下對應的書簽名
在源代碼程序中調試正常,但發布到服務器上時會出現無法生成新的套打文件。解決方案如下:
要將 ASP.NET 訪問權限授予某個文件,請在資源管理器中右擊該文件,選擇“屬性”,然后選擇“安全”選項卡。單擊“添加”添加適當的用戶或組。突出顯示 ASP.NET 帳戶,選中所需訪問權限對應的框。
解決方案:
??????????????????
1: 在"開始"->"運行"->dcomcnfg.exe啟動"組件服務"。
2: 然后 "組件服務"->"計算機"->"我的電腦"->"DCOM配置"。
3: 在"DCOM配置"中找到“Microsoft Excel 應用程序”,右鍵,然后點擊“屬性”->“標識”->選擇"啟動服務".(注:這里并沒有選擇為“交互式用戶”)
4: 在"安全"標簽下:
???? a. "啟動和激活權限"->"自定義"->"編輯"->增加"NETWORK SERVICE"、"ASP.NET"用戶,并給它賦予"本地啟動"和"本地激活"權限.
???? b. "訪問權限"->"自定義"->"編輯"->增加"NETWORK SERVICE"用戶,然后賦予"本地訪問"權限.
???? c. "配置權限"->"自定義"->"編輯"->增加"NETWORK SERVICE"用戶和"guest"賬號.
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
