首页 > 解决方案 > 尝试使用 Javascript 在 Sharepoint 中读取文件的内容

问题描述

我已经成功地将带有 jQ​​uery 的 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 中的实际内容吗?

标签: javascriptjqueryhtmlsharepoint

解决方案


您需要使用文件的 URL,而不是 Office Online 的查看器/编辑器的 URL。直接 URL 应如下所示:

https://yourDomain/sites/yourSite/yourLibrary/yourFileName.xlsx

https://yourDomain/sites/yourSite/yourLibrary/yourFolder/yourFileName.xlsx

在浏览器中输入此 URL 时,应开始下载。


推荐阅读