編輯: 現在的問題已解決,它是有名爲'名稱',我不小心改變的XML代碼。該解決方案是在DOCX文件當使用打開的XML我的文件損壞
我創建使用的Open XML,但每次程序運行該文件得到腐敗,我不知道是什麼原因或時間修改word文檔的程序有一個不起眼的名字如果有任何解決方法呢?
我有一看,有一件事我看到的是太確保我已經關閉了連接,但我想,但我不知道,如果連接仍然打開
編輯:
的輸出文件說,腐敗的,但是當在MS Word恢復運行這些文件是理所應當的
從圖像/代碼 的原始文件被複制到temp.docx和文件中有「名」
我需要用另一個詞取代「名字」的程序。
該程序是半工作的,因爲它改變了文檔的值,但它正在破壞文檔。
鏈接的照片:https://drive.google.com/open?id=0B130JvN0ZPPRODJpZWZENTNUX0E
CODE
private void gen_btn_Click(object sender, EventArgs e)
{
if (System.IO.File.Exists(@"C:\invoices\temp.docx"))
{
// Use a try block to catch IOExceptions, to
// handle the case of the file already being
// opened by another process.
try
{
System.IO.File.Delete(@"C:\invoices\temp.docx");
}
catch (System.IO.IOException exception)
{
Console.WriteLine(exception.Message);
return;
}
}
File.Copy(@"C:\invoices\template.docx", @"C:\invoices\temp.docx");
SearchAndReplace("name", "asdsadsadasdasdas");
}
public static void SearchAndReplace(string wordtoreplace, string replace)
{
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(@"C:\invoices\temp.docx", true))
{
string docText = null;
using (StreamReader sr = new StreamReader(wordDoc.MainDocumentPart.GetStream()))
{
docText = sr.ReadToEnd();
}
//Regex regexText = new Regex(wordtoreplace);
docText = docText.Replace(wordtoreplace, replace);
using (StreamWriter sw = new StreamWriter(wordDoc.MainDocumentPart.GetStream(FileMode.Create)))
{
sw.Write(docText);
}
wordDoc.Close();
}
}
'該文件被損壞了 - 如何?你似乎很少會找到和替換,你確定你不是通過更換一個不好的價值來腐蝕它嗎?什麼是你的輸入,你想要的輸出是什麼,你的實際輸出是什麼?由於缺乏細節而投票結束。 –
你能否提供更多關於你正在使用的文件的細節,其顯示.docx文件,而不是你可能需要使用xml文件? –
嗨,我編輯我的文章鏈接到我的文檔照片。希望它能更好地瞭解我的問題。 – R1CH101