Note that there are some explanatory texts on larger screens.

plurals
  1. POMicrosoft Word Template for Report Using ASP.NET C#
    primarykey
    data
    text
    <p>When I run with debugging mode in my local machine, it's okay but on server I got an error like this.</p> <blockquote> <p>Retrieving the COM class factory for component with CLSID {00020906-0000-0000-C000-000000000046} failed due to the following error: 80080005.</p> </blockquote> <p>My server is Windows 2008 64 bit, Office 2007 and my code is like this</p> <pre><code>private void GenerateWords(string sPO, string sSup) { Object oMissing = System.Reflection.Missing.Value; Object oTrue = true; Object oFalse = false; Object savechanges = true; Word.ApplicationClass oWord = new Word.ApplicationClass(); Word.Document oWordDoc = new Word.Document(); oWord.Visible = true; Object oTemplatePath = Server.MapPath("Reports/Word/PurchaseOrder.docx"); oWordDoc = oWord.Documents.Add(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing); oWordDoc.Activate(); foreach (Word.Field myMergeField in oWordDoc.Fields) { iTotalFields++; Word.Range rngFieldCode = myMergeField.Code; String fieldText = rngFieldCode.Text; // Start filling information in Word file if (fieldText.StartsWith(" MERGEFIELD")) { Int32 endMerge = fieldText.IndexOf("\\"); Int32 fieldNameLength = fieldText.Length - endMerge; String fieldName = fieldText.Substring(11, endMerge - 11); fieldName = fieldName.Trim(); if (fieldName == "PONo") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(sPO); } if (fieldName == "SupNo") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(sSup); } if (fieldName == "VendorID") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["VendorID"].ToString().Trim()); } if (fieldName == "VName") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["Name"].ToString().Trim()); } if (fieldName == "Contact") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["Contact"].ToString().Trim()); } if (fieldName == "Designation") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["Designation"].ToString().Trim()); } if (fieldName == "Tel") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["Tel"].ToString().Trim()); } if (fieldName == "Fax") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["Fax"].ToString().Trim()); } if (fieldName == "PODate") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["PODate"].ToString().Trim()); } if (fieldName == "ClientName") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["ClientName"].ToString().Trim()); } if (fieldName == "JobDescription") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["JobDescription"].ToString().Trim()); } if (fieldName == "JobNo") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["JobNo"].ToString().Trim()); } if (fieldName == "CostCode") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["CostCode"].ToString().Trim()); } if (fieldName == "SchDlvy") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["SchDlvy"].ToString().Trim()); } if (fieldName == "DlvyPoint") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["DlvyPoint"].ToString().Trim()); } if (fieldName == "Amount") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["Amount"].ToString().Trim()); } if (fieldName == "tbl") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeParagraph(); Word.Table tbl = oWordDoc.Tables.Add(rngFieldCode, 1, 5, ref oMissing, ref oMissing); //oWordDoc.Tables.Add(rngFieldCode, dtItems(sPO, sSup).Rows.Count, 5, ref oMissing, ref oMissing); //SET HEADER SetHeadings(tbl.Cell(1, 1), "Item No."); SetHeadings(tbl.Cell(1, 2), "Description"); SetHeadings(tbl.Cell(1, 3), "Unit"); SetHeadings(tbl.Cell(1, 4), "Unit Price"); SetHeadings(tbl.Cell(1, 5), "Amount"); //END SET HEADER //Add Row for (int i = 0; i &lt; dtItems(sPO, sSup).Rows.Count; i++) { Word.Row newRow = tbl.Rows.Add(ref oMissing); newRow.Range.Font.Bold = 0; newRow.Range.Underline = 0; newRow.Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter; newRow.Cells[1].Range.Text = dtItems(sPO, sSup).Rows[i][3].ToString(); newRow.Cells[2].Range.Text = dtItems(sPO, sSup).Rows[i][4].ToString(); newRow.Cells[3].Range.Text = dtItems(sPO, sSup).Rows[i][8].ToString(); newRow.Cells[4].Range.Text = dtItems(sPO, sSup).Rows[i][10].ToString(); newRow.Cells[5].Range.Text = dtItems(sPO, sSup).Rows[i][11].ToString(); } //END ROW oWord.Selection.TypeParagraph(); } if (fieldName == "TItems") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtTotal(sPO, sSup).Rows[0]["Unit"].ToString().Trim()); } if (fieldName == "Discount") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtTotal(sPO, sSup).Rows[0]["Discount"].ToString().Trim()); } if (fieldName == "TAmount") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtTotal(sPO, sSup).Rows[0]["Amount"].ToString().Trim()); } if (fieldName == "Summary") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["Amount"].ToString().Trim()); } if (fieldName == "ReqNo") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["ReqNo"].ToString().Trim()); } if (fieldName == "RevNo") { myMergeField.Select(); oWord.Selection.Font.Color = Word.WdColor.wdColorBlue; oWord.Selection.TypeText(dtPOSup(sPO, sSup).Rows[0]["RevNo"].ToString().Trim()); } } } // End filling information in Word file Object oSaveAsFile = (Object)Server.MapPath("Reports/Word/tmp2.docx"); oWordDoc.SaveAs(ref oSaveAsFile, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); oWordDoc.Close(ref savechanges, ref oMissing, ref oMissing); oWord.Application.Quit(ref savechanges, ref oMissing, ref oMissing); //foreach (Process p in System.Diagnostics.Process.GetProcessesByName("winword")) //{ // try // { // if (p.ProcessName == "WINWORD") // { // if (!p.HasExited) // { // p.Kill(); // p.WaitForExit(); // possibly with a timeout // } // } // else // { // lblMessage.Text = "cannot kill. try again!"; // } // } // catch (Win32Exception winException) // { // //process was terminating or can't be terminated - deal with it // Session["error"] = winException.Message; // Response.Redirect("MessageBoard.aspx"); // } // catch (InvalidOperationException invalidException) // { // //process has already exited - might be able to let this one go // Session["error"] = invalidException.Message; // Response.Redirect("MessageBoard.aspx"); // } //} Response.ClearContent(); Response.ClearHeaders(); Response.ContentType = "application/msword"; Response.WriteFile(Server.MapPath("Reports/Word/tmp2.docx"), false); Response.Flush(); Response.Close(); } </code></pre> <p>And I followed to give the permission from <a href="http://blog.crowe.co.nz/archive/2006/03/02/589.aspx" rel="nofollow">Blog.Crowe.co.nz</a> But still got problem, I can't solve this one since last month. If you're possible, please kindly help to me. Thanks</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload