首页 > 代码库 > 如何用代码读取Office Online Server2016的文档的备注信息
如何用代码读取Office Online Server2016的文档的备注信息
前言
在一个项目上客户要求读取office online server 2016的对文档的备注信息,如下图:
以前思路老纠结在OOS这个在线上,总有以为这个信息存储在某个列表中,其实错了,这个备注信息其实就是word文档的备注信息,微软采用openxml开发的OOS,因此我也采用openxml读取备注信息的思路进行尝试,结果发现原来是可以的,成功效果图如下:
注意:
OpenXml格式只有office2007以及以上版本才支持的格式,如果office97-2003格式的文档是二进制格式的文档,openxml无法进行此操作,需要用代码另存为2007以上的格式。当然OOS在线编辑也不支持此office97-2003格式的文档进行备注信息
实现
1、 下载OpenXMLSDK2.5,如下下载地址:
https://www.microsoft.com/en-us/download/details.aspx?id=30425
2、 下载完毕后,引用如下2个DLL,如下图:
3、 具体代码如下:(注意,sp文档库的文档要转成stream流的方式进行openxml操作)
StringBuilder sb = new StringBuilder(); #region//spsite using (SPSite site = new SPSite("http://sp2016:8001")) { if (site != null) { #region//spweb using (SPWeb web = site.OpenWeb("")) { if (web != null) { Stream docStream = web.GetFile("http://sp2016:8001/DocLib1/测试文档.docx").OpenBinaryStream(); #region//openxml读取备注信息 using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(docStream, true)) { //body var body = wordDoc.MainDocumentPart.Document.Body; //parts var paras = body.Elements<Paragraph>(); //得到备注信息 Comments comments = wordDoc.MainDocumentPart.WordprocessingCommentsPart.Comments; //循环备注信息 foreach (Comment item in comments) { //内容 string content = item.InnerText; //作者 string userID = item.Author; //时间 string createT = item.Date.Value.ToString("yyyy-MM-dd HH:mm:ss"); //sb sb.Append("作者:" + userID + ",备注内容:"+ content +",时间:"+ createT +"\r\n"); } } #endregion } } #endregion } } #endregion //赋值给textBox this.textBox1.Text = sb.ToString();
效果
如何用代码读取Office Online Server2016的文档的备注信息
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。