小编Sha*_*ark的帖子

使用Open XML读取已打开的Word文档?

我见过的所有示例和实现都使用了某些类型的代码,例如:

//filePath is some path to a docx file
using (WordprocessingDocument wpd = WordprocessingDocument.Open(filePath, true))
{
    //Do stuff here
}
Run Code Online (Sandbox Code Playgroud)

这需要关闭您的文件.我希望能够在已经打开的文档上使用Open XML SDK操作,因为我想在用户主动查看文档时做一些事情,我不一定要保存它.

这可能吗?我意识到如果文档打开,Word可能会锁定文档,因此您无法打开文件(即使是只读文件).它有什么办法吗?

如果我能以某种方式在已打开的文档上使用Open XML SDK,那将是非常好的.我有一个想法是暂时保存已打开的文件,并在临时文件上运行OpenXML内容,并以某种方式使用Office API将其与现有文档进行协调.没有想过这种方法,但这不是我想要的理想方式.

我也知道Word API上的一个属性,它通过执行返回XML字符串Word.Range.XML.但是,我不确定如何将此字符串值加载到SDK中,以便我可以利用其方法来帮助我.

ms-word openxml

3
推荐指数
2
解决办法
4801
查看次数

如何检查CComBSTR是否以某个前缀开头?

我遇到了一段代码,我只需要对给定的CComBSTR对象进行前缀检查(类似Y.StartsWith("X")).C++对我来说有点陌生,我最关心的是效率.我不需要以任何方式修改CComBSTR.我想要的是返回一个布尔值,它是否以X前缀开头.

查看CComBSTR成员下的API中列出的运算符,它允许进行非常基本的比较,如==,>,<等.我有两个关于如何尝试解决此问题的想法(如下所示).但是,我没有深入了解什么是最有效/最简单的方法.如果我完全偏离基地,请告诉我.

  1. 使用BSRTToArray创建一个数组,然后迭代前n个索引以检查它是否具有某个前缀.
  2. 从CComBSTR获取BSTR并在BSTR上进行一些比较(还没有弄清楚如何做到这一点)

string atl bstr visual-c++

3
推荐指数
1
解决办法
1487
查看次数

vagrant-proxyconf"`split':错误的URI"错误,为Vagrant安装插件

注意,我在Windows环境中运行它.

我正在公司代理的后面工作,并试图让vagrant-proxyconf插件工作,这样可以设置流浪汉机器通过代理工作.但是,在执行时vagrant plugin install vagrant-proxyconf我收到以下错误:

Bundler, the underlying system Vagrant uses to install plugins, reported an error. The error is shown below. These errors are usually caused by misconfigured plugin installations or transient network issues. The error from Bundler is:

Could not fetch specs from http://gems.hashicorp.com/

Retrying source fetch due to error (2/3): Bundler::HTTPError Could not fetch specs from http://gems.hashicorp.com/Retrying source fetch due to error (3/3): Bundler::HTTPError Could not fetch specs from http://gems.hashicorp.com/
Run Code Online (Sandbox Code Playgroud)

确定它可能是一个代理问题,我尝试设置我的环境变量:

set HTTP_PROXY="http://username:password@proxy:port" …

windows proxy vagrant

2
推荐指数
1
解决办法
3604
查看次数

使用模式填充Ansible清单文件中的主机属性

我有一个看起来像的主机文件

[foo]
foox 192.168.0.1 id=1
fooy 192.168.0.1 id=2
fooz 192.168.0.1 id=3
Run Code Online (Sandbox Code Playgroud)

但是,我想更简洁地使用以下模式来编写:

[foo]
foo[x:z] 192.168.0.1 id=[1:3]
Run Code Online (Sandbox Code Playgroud)

但这被解释为id等于"[1:3]"的原始文本,而不是1,2或3.有没有办法在库存文件中实现这一点,或者我需要通过主机做一些事情变种和/或群变?

host inventory ansible

2
推荐指数
1
解决办法
1470
查看次数

标签 统计

ansible ×1

atl ×1

bstr ×1

host ×1

inventory ×1

ms-word ×1

openxml ×1

proxy ×1

string ×1

vagrant ×1

visual-c++ ×1

windows ×1