javascript - 尝试使用 Javascript 在 Sharepoint 中读取文件的内容
问题描述
我已经成功地将带有 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 中的实际内容吗?
解决方案
您需要使用文件的 URL,而不是 Office Online 的查看器/编辑器的 URL。直接 URL 应如下所示:
https://yourDomain/sites/yourSite/yourLibrary/yourFileName.xlsx
https://yourDomain/sites/yourSite/yourLibrary/yourFolder/yourFileName.xlsx
在浏览器中输入此 URL 时,应开始下载。
推荐阅读
- r - 在一张图像中合并几个并排的图,直到某个给定的上限
- ansible - 如何阻止ansible跳到第二个任务,直到第一个任务成功执行?
- postgresql - 如何在 PostgreSQL 中切换用户?我的意思是作为 PostgreSQL 中的另一个现有用户登录
- python - MultiIndexed pandas 数据框认为输入是唯一的
- amazon-web-services - Scala:获取 URL 参数
- react-native - 如何在反应原生聊天应用程序中实现类似 Whatsapp 的蓝色刻度功能
- sql - 从另一个表中逐行计数,在sql中的两个表上保持一些条件
- tensorflow - tf.keras.backend.function 用于转换 tf.data.dataset 中的嵌入
- sql-server - SQL 连接字符串,无法使用指定的用户名和密码登录
- command-line-interface - 将大量数据传递给 CLI 命令