我很沮喪......我昨天花了一整天創建從SQL數據庫檢索的Word文檔的方法,搜索包含在<變量文件>,然後保存將該文檔轉換爲另一個SQL表。這真是太好了,當我完成錯誤時,我非常高興。一旦完成了所有事情,我將它推送到Web服務器上,並且在開發過程中我還很新,沒有意識到要使該方法在服務器上工作,Office必須安裝在服務器上。毫無疑問,這是不可能的。的OpenXML查找Word文檔中的變量,並取代它們
話雖這麼說,我已經找到一個替代解決我的問題。問題是,我從來沒有使用Open XML。
我需要搜索一個文件用於封閉在<字符串>。因此,如果應用程序在文檔中找到變量,它將用DateTime.Today.ToShortDateString()替換該變量。例如:
string filename = "C:\\Temp\\" + appNum + "_ReceiptOfApplicationLtr.docx";
if (File.Exists((string)filename))
{
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(filename, true))
{
var body = wordDoc.MainDocumentPart.Document.Body;
foreach (var text in body.Descendants<Text>())
{
if (text.Text == "<TodaysDate>")
{
text.Text = text.Text.Replace("<TodaysDate>", DateTime.Today.ToShortDateString());
}
}
using (StreamWriter sw = new StreamWriter(wordDoc.MainDocumentPart.GetStream(FileMode.Create)))
{
sw.Write(filename);
}
}
}
那麼當它搜索後裔文本,找到的第一個<,然後TodaysDate,終於>。問題在於它不會找到字符串<TodaysDate>
。誰能幫我嗎?
是啊,我運行到這個問題現在。我在文檔中設定的變量之一被分解爲不同的運行。它抓住第一個<作爲一個單一的運行,然後TodaysD,然後吃,然後>。這令人沮喪。 – Kramb
@Kramb爲何沮喪?我檢查了該文章的代碼,它工作正常。 –