似乎部署VSTO代码非常麻烦.
我的用例是我需要在单词中强制执行某个内容结构.我最好在VBA中做到这一切吗?
环境:Mac 10.12.6,Word 2016(16.11.1),@ microsoft/office-js"^ 1.1.4"
我想知道在如何使用CustomXMLParts方面有任何指导方针或最佳实践,以便最大限度地提高读/写性能,或者是否有一种"理想"方式来为同一目的在XML部件中建模数据.
我正在编写一个加载项,我需要在可见文档之外保留一些数据,但是在docx文件中.
例如,我存储了一张发票清单(可能是100-200张发票),每张发票都有典型的结构化数据(名称,ID,日期,工作项列表)和自由式备注部分,最多可包含5个-10kb的文字,说明等
我拿这些发票,在Word文档中渲染其中一些,然后在任务窗格中对其余数据进行一些可视化分析 - 用户可以将注释写入(并保存)回自定义XML部件(到该发票中)他们正在看).
现在......这里我有点困惑......我不确定将每张发票作为单独的CustomXMLPart存储在文件中是否更好(例如每张发票1个XML文件),或者是否最好存储所有发票在单个大型CustomXMLPart中,或者如果存在中间地点(例如,每个XML部分有10个发票).如上所述,用例是回读所有发票,然后偶尔更新10-20%的发票中的数据.
现在,我正在为每个XML部分存储1个发票,当我加载我的插件并进行批量读取以将所有内容都存入内存时,每个发票需要250-500平方英寸才能将它们并行读取(所以,250-500ms*100-200发票).顺序地,它需要更长的时间(2-3倍长).使用performance.now()使用挂钟计时进行测试.
这似乎很长一段时间,所以我不知道我是否做错了 - 或者这只是从这些文件中打开和提取数据所需的时间?
// Sequential example - excluding error handling and type-safety
// Parallel equivalent is essentially a Promise.all with a .map
// Approx 50ms
let result = await this.xmlPartsHelper.getByNamespaceAsync(...);
for (const item of result.value) {
// Approx 150-200ms
result = await this.xmlPartsHelper.getByIdAsync(item.id);
// Approx 150-200ms
result = await this.xmlPartsHelper.getXmlAsync(result.value);
// Approx 5ms
const invoice = this.mapper.reverseMap(result.value);
invoices.push(invoice)
}
Run Code Online (Sandbox Code Playgroud)
我使用Promises手动包装Office-JS回调,但我已经使用async/await,然后是/ catch和office-js回调测试了这个示例 - 结果大致相同.
public getByNamespaceAsync(namespace: string): Promise<Office.AsyncResult> …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 HTTPClient 和 REST 在 SP2013 中创建一个文件夹。
以下是对应用程序的要求和限制
我需要使用 REST 在 2013 文档库中创建一个文件夹。不允许 CSOM。
该程序必须是 C# 控制台应用程序。
我必须仅使用 HTTPClient 来调用 Web 服务。不应使用其他旧类或库。
集成身份验证是必须的。您不得在代码中输入您的用户名和密码。它必须使用进程的标识。
基于这些限制,我写了这段代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Net.Http.Formatting;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace RESTCreateFolder
{
class Program
{
static void Main(string[] args)
{
Program p = new Program();
int retVal = p.Process().Result;
}
private async Task<int> Process()
{
string url = "http://bi.abhi.com/testweb/";
using (HttpClient client = new HttpClient(new …Run Code Online (Sandbox Code Playgroud) c# officedev dotnet-httpclient sharepoint-2013 office365-apps
我正在尝试使用Office PnP中的分类法Picker示例.
我只想将一个字段绑定到一个托管元数据术语.
我得到的错误在这里:http: //screencast.com/t/nOaTusUH4V
我的代码是:
<head>
<meta charset="utf-8" />
<title>Learning bootstrap</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="../Content/bootstrap.min.css" rel="stylesheet" />
<link href="../Content/bootstrap-theme.min.css" rel="stylesheet" />
<link rel="Stylesheet" type="text/css" href="../Content/taxonomypickercontrol.css" />
<script src="../Scripts/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.runtime.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.js"></script>
<script src="../Scripts/app.js" type="text/javascript"></script>
<script src="../Scripts/taxonomypickercontrol.js" type="text/javascript"></script>
</head>
body>
<div id="divSPChrome"></div>
<div class="container">
<div class="row">
<div class="col-md-8">
<h2>Create project site</h2>
<form class="form-horizontal" role="form">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">Project name</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputEmail3" placeholder="Project name">
</div>
</div>
<div class="form-group"> …Run Code Online (Sandbox Code Playgroud) VBA解决方案的规模可能有很大差异.
我想在所有解决方案中添加用户帮助文档,但创建和部署帮助的工作量需要与解决方案的大小相匹配.
我最近开发了一个Windows窗体应用程序,它有几个数据网格.我的客户需要将数据导出到Excel中.他们使用不同版本的Excel(即2003,2007,2010,2013),但我使用的是Office 2013.我使用了excel 2013参考资料
(Microsoft excel 15.0对象库)
在我的程序中.最近,我的客户报告说导出选项不起作用.从我的调查看来,我的应用程序似乎适用于那些使用Office 2013但不适用于以前的Office版本的用户.
我该怎么做才能确保我的应用程序在旧版本的Excel中运行?
我正在处理一个演出,它是一个 Office (Excel) 2016 加载项,用于与 Web 应用程序进行数据集成。我们使用的是 Office JS API,并且 XML 清单文件指向一个 AngularJS Web 应用程序。一切正常,到目前为止工作正常。
最近,我们决定向 Web 应用程序添加 OAuth2 功能,以便用户可以通过 3rd 方授权服务器进行身份验证。
问题是,一旦我放置了一个链接(<a>标签)或运行 awindow.location.replace()或设置window.location.hrefwhich指向一个主机名而不是清单文件中提到的主机名的 URL,它会在新窗口中打开 URL,而我想要它只是重定向到加载项窗口中的 URL。
有人知道如何解决这个问题吗?
谢谢