ASP.net MVC4 ビジュアル スタジオ 2012 で開発されたアプリケーションがあります。Word 文書を表示する必要があるページがあります。Word ドキュメントは、別のページからサーバーに既にアップロードされています。このページで、私のプログラムはそのドキュメントを読み込み、いくつかの変更を行い、更新されたワード ファイルを開いてプレビューを表示します。アプリケーションはビジュアル スタジオでは正常に動作しますが、展開後にクラッシュします。
filename = Request.PhysicalApplicationPath + branchP.OfferletterPath;
outfilename = Request.PhysicalApplicationPath + @"Temp\OfferLetter" + "_1";
object Missing = System.Reflection.Missing.Value;
Application app = null;
Document doc = null;
app = new Microsoft.Office.Interop.Word.Application();
doc = app.Documents.Open(filename, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing);
var salary = 0;
WordUtils.FindReplaceAnywhere(app, "<mobileno>", jobCandidate.MobilePhoneNo);
WordUtils.FindReplaceAnywhere(app, "<currentdate>", System.DateTime.Now.ToString("dd/MM/yyyy"));
WordUtils.FindReplaceAnywhere(app, "<name>", jobCandidate.JobCandidateName);
WordUtils.FindReplaceAnywhere(app, "<address>", jobCandidate.Address);
WordUtils.FindReplaceAnywhere(app, "<designation>", jobCandidate.JobTitle);
WordUtils.FindReplaceAnywhere(app, "<doj>", jobCandidate.EmpJoiningDate.ToString());
WordUtils.FindReplaceAnywhere(app, "<salary>", salary.ToString());
Object beforeRow = Type.Missing;
int i = 2;
double amt = 0;
if (doc.Tables.Count > 0)
{
doc.Tables[1].Select();
Table tbl = doc.Tables[1];
foreach (var jc in _entities.JobCandidatePayStructures.Where(jc => jc.JobCandidateId == jobCandidate.Id))
{
tbl.Rows.Add(beforeRow);
tbl.Cell(i, 1).Range.Text = jc.Code;
tbl.Cell(i, 1).Range.Bold = 0;
tbl.Cell(i, 2).Range.Text = jc.Amount.ToString();
tbl.Cell(i, 2).Range.Bold = 0;
amt = amt + jc.Amount;
i++;
}
tbl.Rows.Add(beforeRow);
tbl.Cell(i, 1).Range.Text = "Gross Salary";
tbl.Cell(i, 1).Range.Bold = 1;
tbl.Cell(i, 2).Range.Text = amt.ToString();
tbl.Cell(i, 2).Range.Bold = 1;
}
doc.SaveAs(outfilename, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing, Missing);
app.Visible = true;
上記のコードは Visual Studio で正常に動作していますが、デプロイ後に上記の関数を実行すると、次の例外がスローされます。
This command is not available because no document is open.
Exception occurred at Microsoft.Office.Interop.Word.ApplicationClass.get_ActiveDocument()
at HRIS.Models.WordUtils.FindReplaceAnywhere(Application app, String findText, String replaceText)
誰かが同様のアプリケーションに取り組んでいる場合は、今後の方法を提案してください。
前もって感謝します。