在项目中遇到一个问题,就是当有多个用户同时下载一个文档时,会出现下载不了的情况,经调研,可能是微软自带的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");
}