精华内容
下载资源
问答
  • 上次写了一篇删除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#新手一枚,欢迎讨论

    展开全文
  • 1、查询文件夹下的Word文件是否存在某些关键字,如果存在Word文件的路况保存到txt中。 2、示例代码 import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io....

    1、查询文件夹下的Word文件是否存在某些关键字,如果存在将Word文件的路况保存到txt中。

    2、示例代码

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.Writer;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    import com.spire.doc.Document;
    
    public class Word {
    
    	public static void main(String[] args) {
    		List<String> keywords = Arrays.asList("肉包子", "肉包子A");
    		String path = "D:\\word测试";
    		String filePath = "D:\\word测试\\result.txt";
    		StringBuffer resultTxt = new StringBuffer();
    		if (keywords!=null && keywords.size()!=0) {
    			List<String> fileNames = getFileNames(path);
    			for (String keyword : keywords) {
    				System.out.println("开始搜索。关键字:"+keyword);
    				resultTxt.append("开始搜索。关键字:"+keyword+"\n");
    				if (fileNames!=null && fileNames.size()!=0) {
    					for (String fileName : fileNames) {
    						Document doc = new Document(path+"\\"+fileName);
    						String result = doc.getText();
    						if (result.indexOf(keyword) != -1) {
    							System.out.println("关键字:"+keyword+"----------文件路径:"+path+"\\"+fileName);
    							resultTxt.append("关键字:"+keyword+"----------文件路径:"+path+"\\"+fileName+"\n");
    						}
    					}
    				}
    			}
    			createFile(resultTxt.toString(), filePath);
    		}
    	}
    	
    	/**
    	 * 
    	 * 方法描述:获取路径下所有文件名
    	 *
    	 * @param filePath
    	 * @return
    	 * 
    	 */
    	public static List<String> getFileNames(String filePath) {
    		List<String> fileNames = new ArrayList<String>();
    		File file = new File(filePath + File.separator);
    		File[] files = file.listFiles();
    		if (files!=null && files.length!=0) {
    			for (File tempFile : files) {
    				if (tempFile.isFile()) {
    					fileNames.add(tempFile.getName());
    				}
    			}
    		}
    		return fileNames;
    	}
    	
    	/**
    	 * 
    	 * 方法描述:判断路径文件是否存在,如果不存在则创建
    	 *
    	 * @param path
    	 * 
    	 */
    	public static void mkdir(String path) {
            try {
            	File file = new File(path);
            	if (!file.getParentFile().exists()) { 
            		file.getParentFile().mkdirs();
            	}
            	if (file.exists()) { 
            		file.delete();
            	}
    			file.createNewFile();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    	
    	/**
    	 * 
    	 * 方法描述:生成文件
    	 *
    	 * @param jsonString	文件内容
    	 * @param filePath		文件地址
    	 * 
    	 */
    	public static void createFile(String jsonString, String filePath) {
    		Writer write = null;
    		try {
            	mkdir(filePath);
                File file = new File(filePath);
                write = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
                write.write(jsonString);
                write.flush();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
            	try {
    				write.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
            }
        }
    }

     

    展开全文
  • 获取当前打开的WORD文件路径

    千次阅读 2014-05-13 15:49:25
    cout当前打开的WORD文档路径:"; delete[] szResult; } } if(pDoc != NULL) pDoc->Release(); } } if(pDisp != NULL) pDisp->Release(); } if(pUnk != NULL...

    OLE(Object Linking and Embedding,对象连接与嵌入)。是一种面向对象的技术,利用这种技术可开发可重复使用的COM组件。OLE不仅是桌面应用程序集成,而且还定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制,这种连接机制和协议称为组件对象模型(Component Object Model),简称COM。OLE可以用来创建符合文档,复合文档包含了创建于不同源应用程序,有着不同类型的数据,因此它可以把文字、声音、图像、表格、应用程序等组合在一起。

    Office提供的OLE接口可以让我们控制Office系列软件,包括打开关闭文件,往文件里写数据等一系列的事情,下面的代码通过OLE获取当前WORD打开的文件路径:

    void GetActiveWordFilePath()
    {
    	CLSID clsid;
           //初始化OLE
           CoInitialize(NULL);
    	HRESULT hr = S_FALSE;
    	OLECHAR FAR* szDocMember;
    	OLECHAR FAR* szMember;
    	bool bSucceeded = false;
            //获取WORD对象的CLASSID
    	hr = CLSIDFromProgID(L"Word.Application",&clsid);
    	szDocMember = L"ActiveDocument";
    
    	if(FAILED(hr))
    	{
    		CoUninitialize();
    		return;
    	}
    
    	IUnknown *pUnk;
            //获取当前活动对象
             hr = GetActiveObject(clsid, NULL,(IUnknown**)&pUnk);
    	if(SUCCEEDED(hr))
    	{
    		IDispatch* pDisp;
    		hr = pUnk->QueryInterface(IID_IDispatch,(void**)&pDisp);
    		if(SUCCEEDED(hr))
    		{
    			DISPID dispid;
    			DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
    			VARIANT varResult;
    
    			hr = pDisp->GetIDsOfNames(IID_NULL, &szDocMember, 1, LOCALE_USER_DEFAULT, &dispid);
    			if(SUCCEEDED(hr))
    			{
                                   //获取ActiveDocument属性值
    				hr = pDisp->Invoke(dispid, IID_NULL,LOCALE_SYSTEM_DEFAULT,DISPATCH_PROPERTYGET,&dispparamsNoArgs,&varResult,NULL,NULL);
    				if(SUCCEEDED(hr))
    				{
    					IDispatch* pDoc = varResult.pdispVal;
    					szMember = L"FullName";
    					hr = pDoc->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_USER_DEFAULT, &dispid);
    					if(SUCCEEDED(hr))
    					{
                                                  //获取文件路径属性值
                                                  hr = pDoc->Invoke(dispid, IID_NULL,LOCALE_SYSTEM_DEFAULT,DISPATCH_PROPERTYGET,&dispparamsNoArgs,&varResult,NULL,NULL);
    						if(SUCCEEDED(hr))
    						{
    							wchar_t* wbstr = varResult.bstrVal;
    						  	DWORD dwLen = WideCharToMultiByte(CP_ACP,0, wbstr,-1,NULL,0,NULL,FALSE);
    							char* szResult = new char[dwLen];
    							WideCharToMultiByte(CP_ACP,0,wbstr,-1, szResult,dwLen,NULL,FALSE);
    							cout<<"当前打开的WORD文档路径:"<<szResult<<endl;
    							delete[] szResult;
    						}
    					}
    
    					if(pDoc != NULL)
    						pDoc->Release();
    				}
    
    			}
    
    		if(pDisp != NULL)
    			pDisp->Release();
    		}
    
    		if(pUnk != NULL)
    			pUnk->Release();
    	}
    
    	CoUninitialize();
    
    }


    展开全文
  • c++ builder6.0 环境开发,获取一个文件夹内所有word和pdf文件页数信息。电脑要装有offcie access。
  • 菜菜欢迎大家的到来,有任何了解的或者讲的明白的,可以直接在评论区留言,也可以直接私信我,...本文章主要介绍如何创建word文档和保存word文档到指定路径下 核心代码如下(注意一定要添加word的dll文件) ...

    菜菜欢迎大家的到来,有任何不了解的或者讲的不明白的,可以直接在评论区留言,也可以直接私信我,愿意交朋友一起学习的,我们也可以加个微信

    本文章主要介绍如何创建word文档和保存word文档到指定路径下

    核心代码如下(注意一定要添加word的dll文件)

    Word.Application newapp = new Word.Application();
                Word.Document newdoc;
                object nothing = System.Reflection.Missing.Value;
                newdoc = newapp.Documents.Add(ref nothing, ref nothing, ref nothing, ref nothing);//生成一个word文档
                newapp.Visible = true;       //确定是否打开word

    关于保存的问题,大家可以直接通过下方链接,进入我的另一篇文章查看
    https://editor.csdn.net/md/?articleId=108836771

    展开全文
  • 用java语言实现对word表格操作,实现自动批量往数据库中插入数据,节省插入数据时间。
  • 我编写的程序,读取word文档里的文字,并将其保存到.txt文档中。 已通过测试,下载压缩文件后解包修改为自己的word文件路径与txt文件路径 即可立即运行。
  • 最近碰到一个需求,删除Office(Word,Excel,PowerPoint)中Recent Document最近文档地址不存在文件,即每次打开office(Word,Excel,PowerPoint),发现Recent Document有些文件的地址已经失效(移动或者删除),...
  • 图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话多说了,来一起看看详细的代码 实例代码: # -*- coding: UTF8 -*- from docx import Document ...
  • 设置Word2000文档及图片的保存路径这个是在VBgood找到的源码,传到空间做个备份,
  • 测试的时候用的死路径,但是提交代码能写死...测试的时候写了个生成文档路径,比如D:/目录下,但是放在项目中能能让用户自己选择生成的文档路径地址 哪位大佬做过这方面的问题,帮助一下,感谢!!!!!!!!!
  • 再设置要查找的路径范围,点击搜索,稍等几秒就有结果了,会列出出现这个关键字的word文档有哪些,这样一目了然,想找出这些word就只需要几秒就实现了,根本需全部打开。 新版本支持多关键字查找和子文件夹搜索。
  • //如果输出目标文件夹不存在,则创建 if (!outFile.getParentFile().exists()){ outFile.getParentFile().mkdirs(); } //将模板和数据模型合并生成文件 Writer out = new BufferedWriter(new ...
  • 前段时间用到得导出学生信息到word,利用phpword将内容生成word,更新wordn内容到项目中下载。按照路径将phpword放到指定得目录vendor下引用就可以了。
  • 本OfficeDoc内容检索器,采用C#开发,基于Office Com+组件对硬盘上的PPT和Word文件进行文字和图表的解析并持久化保存,从而实现PPT和Word文件基于关键字的内容检索。 因此,本工具使用时,需要2步: 第一步:先通过...
  • 目标 最近实验室里成立了一个计算机兴趣小组 倡议大家多把自己解决问题的经验...而且点击文件路径可以直接打开对应的文件(含超链接) 代码实现 1. 采集docx里面文件头信息 # -*- coding:utf-8 -*- # 此程序可扫描
  • 内容索引:VB源码,其它类别,Word,路径 通过VB编写程序,用来设置Word2000文档及图片的保存路径,这个平时大家怎么用到,很多人都是只管使用Word,没怎么管文档和图片保存在哪里,通过这个程序,你或许会明白更多此...
  • Jacob操作word 文档的方法集!(含创建目录),使用的Jacob版本是1.5
  • 微信小程序预览word,excel,doc文件Demo代码,下载代码直接使用微信小程序打开运行即可,可以使用微信小程序对应的真机调试进行测试预览功能
  • 运行jar包,输入自己要到导出的mysql名称,用户名,密码,导出的位置等等,可以直接导出mysql表的结构word文档 命令为:java -jar Structrue.jar -n=数据库名 -u=用户名 -p=秘密啊 -d路径
  • c#无引用第三方库进行文件对比,返回两个文件的相似度。调用:var res = nlp.SimnetFile(p1, p2);//p1:源文件路径 p2:目标文件路径
  • java 根据模板文件生成word文档

    万次阅读 多人点赞 2018-09-19 16:18:05
    最近需要做一个导出word的功能, 在网上搜了下, 有用POI,JXL,iText等jar生成一个word文件然后将数据写到该文件中,API非常繁琐而且拼出来的样式也美观,于是选择了另一种方式----feemarker基于word模板的导出方式, ...
  • 往往开发环境和生产环境在环境部署时会遇到很多奇怪的问题,此次word文档下载就被卡住了,通过一番努力终于找到了原因,分享给大家。上传文件txt格式,内有方法详细的代码注释及原因说明,jar包比较常见,大家自行...
  • 输入插入word图片的文件名序号,请提前对图片进行编号,1,2,3...n,存放于E盘tutu文件夹,并在E盘新建一个word文件,名为 blank,程序可实现批量插入图片并设置格式。程序备注清晰可读。
  • Word 2010插入超链接——使用相对路径
  • word设置相对路径

    2017-07-04 16:26:00
    ###word文件如何进行相对路径连接 1. 选中文字->右键->超链接 2. 现有文件或网络->当前文件->选中文件 转载于:https://my....
  • 查询了很多有关资料,发现都是Python2版本操作Word文件的,所以就写了这篇短小的文章。 一、安装 docx pip install docx 完了之后,导入:import docx 发现报错:ModuleNotFoundError: No module named ...
  • js导出Excel 、word文件

    2011-12-22 09:59:05
    js导出Excel 、word文件,带样式
  • jsp和sevlet中的相对路径和绝对路径!以及获取路径的方法!jsp 和 servlet的路径对比!文档很简单实用 !
  • word模板格式,将需要替换的位置用&amp;xx&amp;占位符填上,在后台找到跟数据相同的名称时替换 #region 带模板导出 public HttpResponseMessage ExportWordModel(dynamic obj) { long formId = obj.id; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 162,922
精华内容 65,168
关键字:

word文档路径不存在