我已成功将带有jQuery的javascipt嵌入到SharePoint中的页面中,并且我正在尝试编写一个函数,该函数在加载时被调用,该函数从已上传到SharePoint库中的excel文件中获取数据,以便使用JavaScript对其进行操作,然后将其推送到SharePoint列表中。我的问题来自第一部分。我尝试使用以下代码执行此操作,该代码是从SharePoint文档中获得的,并经过修改以使用“ .fail”功能而不是不建议使用的“ .error”功能:
function readFile() {
var clientContext;
var oWebsite;
var fileUrl;
clientContext = new SP.ClientContext.get_current();
oWebsite = clientContext.get_web();
clientContext.load(oWebsite);
clientContext.executeQueryAsync(function () {
fileUrl = "My file's url as obtained from SharePoint";
$.ajax({
url: fileUrl,
type: "GET"
})
.done(Function.createDelegate(this, successHandler))
.fail(Function.createDelegate(this, errorHandler));
}, errorHandler);
function successHandler(data) {
console.log(data);
}
function errorHandler() {
console.log("Request failed: " + arguments[2]);
}
}
这似乎起作用,因为我没有收到任何错误,并且数据确实显示在控制台中。但是,我看到的不是文件的内容,而是:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name='viewport' content='width=device-width, initial-scale=1' />
<meta name='robots' content='noindex' />
<link rel="shortcut icon" href="http://spoos-16-rdn.bankofamerica.com/wv/resources/1033/FavIcon_Word.ico" />
<title>Document.docx</title>
<script type="text/javascript">
var WOPIPerf_UserClick = null;
if (window.sessionStorage)
{
WOPIPerf_UserClick = window.sessionStorage.getItem("WOPIPerf_UserClickTime");
window.sessionStorage.removeItem("WOPIPerf_UserClickTime");
}
</script>
<script type="text/javascript">
function ULS6zp(){var o=new Object;o.ULSTeamName="Microsoft SharePoint Foundation";o.ULSFileName="WOPIFrame.aspx";return o;}
function getWopiIFrameElement()
{ULS6zp:;
return document.querySelector("iframe[name=WebApplicationFrame]");
}
function WACRedirector()
{ULS6zp:;
var myFrame = getWopiIFrameElement();
myFrame.id = "WebAp
我不确定发生了什么,但是我觉得这里缺少一个步骤。当我在浏览器中输入url时,它将重定向到SharePoint的内部文档编辑器,在这里我确实可以看到文档的内容甚至进行编辑。要在JavaScript中获取文件的实际内容,我还需要做其他事情吗?
答案 0 :(得分:0)
您需要使用文件的URL,而不是Office Online的查看器/编辑器的URL。直接网址应如下所示:
https://yourDomain/sites/yourSite/yourLibrary/yourFileName.xlsx
https://yourDomain/sites/yourSite/yourLibrary/yourFolder/yourFileName.xlsx
在浏览器中输入后,该URL应该开始下载。
答案 1 :(得分:0)
我找到了答案:查询URL需要利用SharePoint中内置的ExcelRest API。为此,我只需要按照以下方式将“ /_vti_bin/ExcelRest.aspx/”添加到URL:
https://yourDomain/sites/yourSite/yourLibrary/_vti_bin/ExcelRest.aspx/yourFolder/yourFileName.xlsx