在c#專案中用Docx外掛匯出word文件
在專案中遇到一個問題,就是當有多個使用者同時下載一個文件時,會出現下載不了的情況,經調研,可能是微軟自帶的Microsoft.Office.Interop.Word外掛的問題,所以就改用Docx外掛,解決了問題。程式碼如下:
public void downDeviceAdjust()
{
try
{
var direc = HttpContext.Current.Server.MapPath(HttpPostedFileExtension.POSTED_FILE_ROOT_DIRECTORY);
var savePath = direc + "測試申請表.docx";
var templateName = direc + "測試申請表_模板.docx";
DocX wordDocumentOld = DocX.Load(templateName);//載入已有的word模板
DocX wordDocument = wordDocumentOld; //複製載入的word模板,以免汙染原始模板
Table wordTable = wordDocument.Tables[0];//獲取模板中的第一個表格
wordDocument.Bookmarks["number"].SetText("12345");//向模板中的書籤中寫入資料
wordDocument.Bookmarks["projectName"].SetText("專案名稱");
wordTable.Rows[1].Cells[1].Paragraphs[0].Append(beforeAdjustDetail.ConstructPlanItem.DeviceNumber);//向模板中的表格中寫入資料
wordDocument.SaveAs(savePath); //將寫好的word另存到指定路徑
downLoad(direc + "儀器裝置購置計劃調整申請表.docx", "儀器裝置購置計劃調整申請表.docx");
}