精华内容
下载资源
问答
  • 上次写了一篇删除Office(Word,Excel,PowerPoint)中Recent Document最近文档地址不存在的文件,注重从注册表中删除记录,后来发现有问题,online打开文件的记录在注册表中并没有找到(不知道注册表中有没有,个人...

    上次写了一篇删除Office(Word,Excel,PowerPoint)中Recent Document最近文档地址不存在的文件,注重从注册表中删除记录,后来发现有问题,online打开文件的记录在注册表中并没有找到(不知道注册表中有没有,个人没有找到,发现online打开会生成临时缓存文件,文件的名字被重新命名),现在写一个适用online和local两种情况的(online打开的文件情况比较多,这里就拿sharepoint上面打开的文件为例,如果有通用的情况,希望告知,共同进步)

    1.以word举例,使用Microsoft.Office.Interop.Word这个命名空间下的库,通过Application.RecentFiles得到最近打开文件

    RecentFiles recentFiles = this.Application.RecentFiles;
                    

    2.对得到的文件集合recentFiles遍历,对每个文件进行判断是local还是online

    foreach (RecentFile recentFile in recentFiles)
                    {
                        string onlineUrl = string.Empty;
                        try
                        {
                            string path = recentFile.Path;
                            string name = recentFile.Name;
                            bool isOnline = path.Contains("http");
                        }
                        catch (Exception ex)
                        {
                            //打log文件,自己可以直接输出就行console.writeline(ex.message)
                            logger.Error(string.Format("An error occurred while DMS {0} {1} clear online recent file:{2}.Reason: {3}", officeType, version, onlineUrl, ex.ToString()));
                        }
                    }
                }

    3.对于local的文件记录,可以直接判断存在与否

    if (!isOnline)
    {
           if (!File.Exist(path))
           {
                  recentFile.Delete();
           }
    }
    

    4.对于online(这里以sharepoint上面打开的文件为例),需要稍微更改一下文件的路径,因为通过recentFile得到的path不是我们想要的格式,例如http:\\dragonma:19004\Shared%20Document\Test1\test1.docx,需要改成我们平时用client api连接sharepoint站点用的url格式,例如http://dragonma:19004/Shared%20Document/Test1/test1.docx

    if(online)
    {
    string onlinePath = path.Substring(path.IndexOf("http"));
                                string firstTemp = onlinePath.Substring(onlinePath.IndexOf("\\") + 1);
                                int needAdd = onlinePath.Length - firstTemp.Length;
                                int secondBackslash = firstTemp.IndexOf("\\");
                                string folderUrl = firstTemp.Substring(secondBackslash + 1);
                                string webUrl = onlinePath.Substring(0, secondBackslash + needAdd);
                                string fileServerRelativeUrl = folderUrl + "\\" + name;
                                webUrl = webUrl.Replace("\\", "//");
                                fileServerRelativeUrl = "/" + fileServerRelativeUrl.Replace("\\", "/");
                                onlineUrl = webUrl + fileServerRelativeUrl;
                                OCT.SPOperation.OCTOperation OCTOperation = OCT.SPOperation.OCTOperation.GetInstance();
                                bool recentFileIsExist = OCTOperation.RecentFileIsExist(webUrl, fileServerRelativeUrl);
                                if (!recentFileIsExist)
                                {
                                    recentFile.Delete();
                                }
    
    }
    

    5.OCTOperation.RecentFileIsExist是自己写的一个函数比较简单,因为在公司里面用给进行了好几次封装,这里就不贴出来了,参照以前写的sharepoint的文章很容易写,例如SharePoint中Document Library文档库数据备份到本地里面的连接sharepoint站点和判断文件存在与否

    6#新手一枚,欢迎讨论

    展开全文
  • echart图例导出成word文档,在word文档中会出现echart展示出来的情况,那么就需要前后端配合解决这个问题。我们项目开发工具是用的Idea,前端需要将echarts图例中的base64的路径信息传给后端,后端再将其存储到其...

    echart图例导出成word文档,在word文档中会出现echart展示不出来的情况,那么就需要前后端配合解决这个问题。我们项目开发工具是用的Idea,前端需要将echarts图例中的base64的路径信息传给后端,后端再将其存储到其target/static目录资源下,然后根据后端返回的图片信息将其拼接挂在img的src下,此刻在word文档上看到其实是一个echarts图例转换成的图片展示的

    <!-- echarts实例 -->
    <div id="echartOne">
    </div>
    
    <!-- echarts图片 -->
    <img id="echartOneImg"/>
    
    <script src="../libs/jquery/jquery-3.4.1.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="../libs/layui/layui.all.js" type="text/javascript" charset="utf-8"></script>
    <script src="../libs/echarts/echarts.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
    	let echartOne = echarts.init(document.getElementById("echartOne"));
    
    	let option = {
    		xAxis: {
    			type: 'category',
    			boundaryGap: false,
    			data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    		},
    		yAxis: {
    			type: 'value'
    		},
    		series: [{
    			data: [820, 932, 901, 934, 1290, 1330, 1320],
    			type: 'line',
    			areaStyle: {}
    		}]
    	};
    	
    	echartOne.setOption(option)
    	
    	let promiseOne = new Promise((resolve,reject) =>{
    		echartOne.on('finished',function(){
    			resolve()
    		})
    	}).then(()=>{
    		// 获取echarts实例中的图片路径信息(图片Base64)
    		let picUrlInfo = echartOne.getDataURL()
    		// 调用echartToImg方法
    		echartToImg(picUrlInfo,"#echartOne","#echartOneImg")
    	})
    	
    	// 将echart实例中的图片Base64路径信息传递给后台,
    	// 后台做处理存入target/statics资源下,
    	// 根据后台返回的信息,将图片路径加载到图片的src属性中
    	function echartToImg(picUrlInfo,echartId,echartImgId){
    		let baseUrl = window.location.origin;
    		let loadIndex;
    		$.ajax({
    			url:'/import/URL',//接口是假的
    			method:"post",
    			data:{
    				echartInfo:picUrlInfo
    			},
    			beforeSend:function(){
    				loadIndex = layer.load();
    			},
    			complete:function(){
    				layer.close(loadIndex);
    			},
    			success:function(res){
    				$("#echartOneImg").attr("src",baseUrl + res.data)
    			}
    		})
    	}
    	
    </script>
    

    下图是let picUrlInfo = echartOne.getDataURL()的具体信息
    在这里插入图片描述

    展开全文
  • 前年的项目需要一个“在线预览”功能,也就是用户上传的Word或Excel等文档,可以经过下载直接在线预览。当时对比了多种解决方案,包括Flash等,最终敲定的方案是所有文档统一转化为PDF,然后使用H5技术的PDF在线...

    好像并没有人给出切实可行的解决方案,那么我来添加一个回答吧!

    前年的项目需要一个“在线预览”功能,也就是用户上传的Word或Excel等文档,可以不经过下载直接在线预览。当时对比了多种解决方案,包括Flash等,最终敲定的方案是所有文档统一转化为PDF,然后使用H5技术的PDF在线预览模块来实现在线预览。这样的话,就存在两个关键问题:

    1、如何将用户上传的文档转化为PDF?

    2、如何在线预览PDF?

    第一个问题,因为项目要部署到Linux上,所以基于MS Office的一切解决方案就统统不考虑了。经过一番Google,最终敲定使用LibreOffice的SDK来完成转换。Java同LibreOffice的交互,则使用了开源的JODConverter。经测试,转换基本上可以说完美,速度也很理想。不过遗憾的是,该插件不支持多线程。

    第二个问题,使用了火狐他家的PDF.js,纯H5实现,不需要任何插件——包括Flash。基于Flash的方案不仅要对PDF实行2转,而且资料极少且收费。PDF.js完全符合我们的需求。但缺点是,不支持IE8以下的浏览器。

    题主的需求,参照我的解决方案,至少PDF的保存,可以得到解决。

    现在再绕回去,看看怎么解决数据填写后生成固定格式的文档。

    FreeMarker是MVC中,V层,也就是视图层的一环。而事实上,“生成固定格式的文档”,也是位于V层的。也就是说,FreeMarker和文档生成都是视图层,它们可以共用Model层,但彼此之间并没有交集。所以该课题和FreeMarker没有毛线关系。

    Java中操作Office系的文档,首推Apache POI库。不过……该库应对读取还好说,写入功能并不强大。特别是针对样式的一些操作,极度的不直观……应付你所谓的“固定格式表格”,我认为是够用的了。

    So,在满足题主问题需求的前提下,我给出的解决方案就是:POI(生成文档)-> LibreOffice + JODConverter(转换文档至PDF)。如果有在线预览文档的需求,则使用PDF.js。

    展开全文
  • 获取文件的拓宽名(后缀名),并且判断该文件的拓展名是否为(doc)或者(docx)类型,不是则说明该文件不是文档或者Word文档。 为文件命名,最好用随机字符串或者时间来命名,避免文件名重复出现的情况。 判断保存文件的...
    1. 创建一个public,用HttpPostedFileBase方法在控制器部分接收从视图传过来的文件。
    2. 判断传过来的玩家是否为空,不为空则进行下一步操作,if(……);
    3. 获取文件的拓宽名(后缀名),并且判断该文件的拓展名是否为(doc)或者(docx)类型,不是则说明该文件不是文档或者Word文档。
    4. 为文件命名,最好用随机字符串或者时间来命名,避免文件名重复出现的情况。
    5. 判断保存文件的路径是否存在,不存在就直接创建路径,然后再拼接存放Word文档的路径(string filePath=………);
    6. 把Word文档转换为HTML代码:首先把Word文档的拓展名改为(.HTML),然后就开始拼接保存文件的路径,因为什么判断过保存文件的文件夹是否存在了,所以在这里不需要重复判断,直接拼接路径就可以了(string HtmlPath=………);
      在这里插入图片描述
    7. 引用Spire.Doc for .NET组件后将文件读取到document中,然后再把文件转换为HTML的格式并且保存到指定的路径下面。
    8. 用一个ReadAllText方法读取文件中的所有的字符串。
      9.用正则表达式把所以的P标签或者Pre标签全部替换为带有reg=“demo"属性的P标签以及结尾的标签也要替换为P标签的结尾标签,方便后面获取P标签里面的内容。
      10.替换完成之后利用正则表达式提取所有的P标签。—
      MatchCollectionmatchesPList=Regex.Matches(strHtml,”<preg=“demo”[\w\W\r\n]*?");
      11.声明一个键值对集合列表保存最终的结果。List<…>
      12.For循环上面提取出来的所有的P标签,把P标签以及里面的内容一条条地循环放入字符串strP中,然后再调用一个获取P标签里面的内容的方法FormateHandler,声明一个键值对集合并给这个键值对集合添加上面得到的数据。
      13.声明一个空的字符串,用来拼接存放下面的数据。
      14.foreach循环上面的键值对列表,把键值对列表里面的内容赋值给一个键值对集合,再在里面嵌套一层foreach循环,把键值对集合里面内容赋值给一个字符串,再把这个字符串里面的内容赋值给上面声明的那个空的字符串并且要在foreach循环的我们加上一个换行符,用来分割开里面的数据。
      15使returnJson的文本值等于上面的字符串,并且设置returnJson的状态为true,然后在用一个return Json(returnJson, JsonRequestBehavior.AllowGet)就可以把数据返回并且显示在页面当中了。
      在这里插入图片描述
      步骤12中的FormateHandler方法:
    9. 在public方法中传入一个string类型的参数,传过来的参数取决于上面在调用这个方法时里面的括号放入的数据(public string FormateHandler(string htmlP));
    10. 判断里面的P标签有没有src这个属性,如果有则声明里面有图片文件,需要进行特殊的处理,再次调用一个专门处理图片文件的方法(getImages());
    11. 如果没有则去掉里面的Span标签,然后再再去掉span标签的基础上再把P标签去掉,然后里面剩下的就是我们需要的内容了,为了避免内容里面还有其他的各种各样的样式,所以需要通过正则表达式把里面的(注释 \r回车 \n换行符)样式去掉,再把这个数值返回回去。
      else{ htmlStr = Regex.Replace(htmlP, “<span.?>|| ", “”);
      htmlStr = Regex.Replace(htmlStr, "<p reg=“demo”.
      ?>|”, “”);
      }
      htmlStr = Regex.Replace(htmlStr, “”, “”);
      在这里插入图片描述
      再接下来就是处理图片的那部分内容:
    12. 在public方法中传入一个string类型的参数,传过来的参数取决于上面在调用这个方法时里面的括号放入的数据(public string getImages (string htmlP));
    13. 声明一个空的字符串(restr),然后通过正则表达式获取到里面的img标签。
    14. For循环上面得到的img标签,把它的值赋给一个字符串imgs,然后开始判断这个字符串是否为空,不为空则用正则表达式在每个img标签的前面加上一个span标签。
    15. 然后匹配出所有的span标签,通过For循环获取匹配出来内容。
    16. 判断span标签里面有没有src这个属性,有则声明获取到图片的路径,然后拼接到restr这个字符串中去;没有则把里面的span标签全部去掉,然后拼接到restr这个字符串中,再把这个字符串返回回去。
      在这里插入图片描述
    展开全文
  • Chrome+IE默认支持粘贴剪切板中的图片,但是我要发布的文章存在word里面,图片多达数十张,我总能一张一张复制吧? 我希望打开文档doc直接复制粘贴到富文本编辑器,直接发布 感觉这个似乎很困难,因为Ueditor...
  • 为解决在FCK里粘贴WORD文档图片存在服务器上的问题,今天特写个了用户控件当然,如果不是存于FCK的value而是使用在其它地方也不错:)编程思想如果把wordf直接粘到fck编辑器的话地面的图片因为是本地路径所以...
  • //如果输出目标文件夹不存在,则创建 if (!outFile.getParentFile().exists()){ outFile.getParentFile().mkdirs(); } //将模板和数据模型合并生成文件 Writer out = new BufferedWriter(new ...
  • 1. 根据文件路径获取 Intent  2. 在手机端如果没有安装第三方时,intent是无效的,如果加判断会crash。所以要添加以下代码判读intent是否存在,防止崩溃
  • Microsoft Word 提示磁盘已满,请在驱动器上释放一些空间,或者将文档存在至另一磁盘,请试用下列方法 关闭需要的程序、文档、窗口。将文档存至另一磁盘。 报错截图如下: 1、选择文件--选项。 3、在word...
  • 在我的项目中出现了问题 生产(Linux)上就是word转pdf...若linux上不存在/usr/share/fonts路径,是因为没安装linux版应用桌面,所以要先安装一下应用。 下面是实现word文档docx转为pdf文件的代码。 import java.io...
  • Axure导出Word需求文档

    2012-07-19 11:19:22
    在导出规格说明书时,当路径存在中文路径时会报unicode之类错误,此错误可以忽略,如果想看到此错误提示,选一个非中文路径即可。 ...
  • printf("文件不存在\n"); continue; } } /*命名结果文件并打开*/ sprintf(result, "%s_result", source); p_result = fopen(result, "w"); /*输入关键字*/ while(1) { printf("请输入关键字:(不超过80个字符)\n...
  • oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...
  • 第一种方法模板文件一般存在下面的路径,看图注意:文件夹是隐藏着的,所以文件夹选项要选择显示隐藏的文件和文件夹,进入下图,把这两个模板删除,重新启动word,即可正常打开。路径:C:\Documents and Settings\...
  • 天在使用POI包解析word文档的时候,遇到了个让我恶心了好久的bug。。。 就是包已经导入成功了,代码引用也没问题,一运行就报 org.apache.poi.xwpf.usermodel不存在 错误。我以为是包没下载下来,但是去本地maven...
  • 11、拆分文档:将WORD文件的每一页替换成一个文档,适用于每页之间不存在关联、可以独立成文的文档。例如调查表,文档的每一页有一个表格,拆分后每一个文档都拥有完整独立的内容。 12、多文档批量替换:对多个WORD...
  • WORD文件的每一页替换成一个文档,适用于每页之间不存在关联、可以独立成文的文档。例如调查表,文档的每一页有一个表格,拆分后每一个文档都拥有完整独立的内容。 按一级标题拆分 将当前文档按一级标题拆分成多个...
  • 说明: 1、本文件用于根据批量存在的经纬度和高度数据手动生成谷歌地球路径 2、本工具生成的kml文件仅用于谷歌地球软件使用,作者不对其他软硬件的...4、本人不会写代码,您下载到的是word文档,需要手动使用,内含教程
  • 今天在使用POI包解析word文档的时候,遇到了个让我恶心了好久的bug。。。 就是包已经导入成功了,代码引用也没问题,一运行就报org.apache.poi.xwpf.usermodel不存在 错误。我以为是包没下载下来,但是去本地maven...
  • 罗刚君Word精灵 v3.0.rar

    2019-07-13 05:22:16
    拆分文档:将WORD文件的每一页替换成一个文档,适用于每页之间不存在关联、可以独立成文的文档。例如调查表,文档的每一页有一个表格,拆分后每一个文档都拥有完整独立的内容。 段落缩进:让指定的段落首行缩进俩...
  • Chrome+IE默认支持粘贴剪切板中的图片,但是我要发布的文章存在word里面,图片多达数十张,我总能一张一张复制吧? 我希望打开文档doc直接复制粘贴到富文本编辑器,直接发布 感觉这个似乎很困难,因为Ueditor...
  • //对替换好的word模板另存为一个新的word文档 doc.SaveAs(physicNewFile, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, ...
  • java读取word文档时,虽然网上介绍了很多插件poi、java2Word、jacob、itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,太稳定,做项目太敢用);java2Word、jacob容易报错找到注册,比较诡异,...
  • jacob使用备忘

    2010-02-09 17:03:41
    jacob是除poi外的另外一种处理office文档的方式,采用com的方式调用com组件的方法,最常用的方式用invoke saveas方法另存或者修改excel,这点和delphi处理word文档的方式相同,优点是:不存在office文件版本兼容问题...
  • Chrome+IE默认支持粘贴剪切板中的图片,但是我要发布的文章存在word里面,图片多达数十张,我总能一张一张复制吧? 我希望打开文档doc直接复制粘贴到富文本编辑器,直接发布 感觉这个似乎很困难,因为Ueditor...
  • 实例043 从字符串中分离文件路径、文件名及扩展名 实例044 获取字符串中汉字的个数 实例045 批量替换某一类字符串 实例046 对字符串进行加密与解密 3.3 常用数字处理技术 实例047 判断输入的货币值是否为数字 ...
  • 实例043 从字符串中分离文件路径、文件名及扩展名 实例044 获取字符串中汉字的个数 实例045 批量替换某一类字符串 实例046 对字符串进行加密与解密 3.3 常用数字处理技术 实例047 判断输入的货币值是否为数字 ...
  • 实例043 从字符串中分离文件路径、文件名及扩展名 实例044 获取字符串中汉字的个数 实例045 批量替换某一类字符串 实例046 对字符串进行加密与解密 3.3 常用数字处理技术 实例047 判断输入的货币值是否为数字 ...
  • 实例043 从字符串中分离文件路径、文件名及 扩展名 55 实例044 获取字符串中汉字的个数 57 实例045 批量替换某一类字符串 58 实例046 对字符串进行加密与解密 59 3.3 常用数字处理技术 61 实例047 判断输入的货币值...
  •  实例043 从字符串中分离文件路径、文件名及扩展名 55  实例044 获取字符串中汉字的个数 57  实例045 批量替换某一类字符串 58  实例046 对字符串进行加密与解密 59 3.3 常用数字处理技术 61  实例047 ...

空空如也

空空如也

1 2 3 4 5
收藏数 99
精华内容 39
关键字:

word文档路径不存在