如何从 Sharepoint 上的 Excel 文件中提取数据?大家好,
我有一个脚本设置来打开一个 Excel 文件,提取所需的数据,运行一些分析,将分析保存为交互式 HTML(供非 JMP 用户访问),然后关闭 JMP。 在我的试播脚本中一切正常,并且作为非编码员我特别高兴能弄清楚这一切。 现在的挑战是,这必须在两家完全独立的公司之间运作。 两家公司都可以通过 Sharepoint 访问一个通用的 Excel 文件。 我已获准访问 Sharepoint 上的文件。 经过多次“搞砸”,然后找到 Web() 函数,我现在可以让 Excel 文件在 Sharepoint 上打开。但是,我无法将数据从 Excel 提取到 JMP 以进行后续分析
在我的原始脚本中,我只是使用 Open() 将 Excel 内容加载到数据表中。 现在我盯着 Sharepoint 中的 Excel 页面,我被卡住了。 在这一点上,我看不到树木的树木。 对此的任何意见都值得赞赏。 如果您有任何 JSL 输入,请确保其清晰易读10 7岁。 这是我坚持的一点:
Names Default To Here( 1 );
Web( "https://company.sharepoint.com/folders/file.xlsx);
dt = Open(
“Am I missing something here? Sharepoint is showing the Excel file, but it's not really OPEN as such”
Worksheets( "Whole Milk" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 3 ),
Data Starts on Row( 4 ),
Data Starts on Column( 2 ),
Data Ends on Row( 0 ),
Data Ends on Column( 24 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
脚本Re: 如何从 Sharepoint 上的 Excel 文件中提取数据?@ih它还活着! 它将数据从 Sharepoint 提取到数据表中。 非常感谢您指导我使用此解决方案。 我在社区帖子中搜索了与 Sharepoint 相关的查询,但没有搜索 Office 365。 @hardner感谢您建议添加时间延迟以允许凭证握手。 让一切变得不同,让我开心!
当我(可能)有问题保存到 Sharepoint 时,我会回来的! 
Re: 如何从 Sharepoint 上的 Excel 文件中提取数据?这确实是我正在使用的解决方案......
open() 本身将使用一些缓存的凭据,但我不确定它们会持续多久。
对我来说,添加的初始 web() 是一个好的解决方案,因为我用它来打开我自己的内部“company.sharepoint”位置我们的内部 SSO 就在这方面工作! 我在 web() 之后放置了一个很大的(15 秒)等待,如果它没有立即使用缓存的凭据打开,它仍然可以通过使用我的凭据进行内部登录而不进行任何交互来工作。通过这种方式,我有各种脚本作为计划作业运行,它们似乎能够可靠地从 sharepoint 打开我们的内部 excel 表。
Re: 如何从 Sharepoint 上的 Excel 文件中提取数据?看看这篇文章,我*认为*你会遇到同样的问题。当时我认为没有完美或完全自动化的解决方案,但也许@hardner从那以后发现了什么?
从 JMP/JSL 打开 microsoft office 365 基于云的 excel?
简而言之,首先打开 Web 浏览器窗口进行身份验证,然后打开文件。
要获取 URL:
- 在 office 365/sharepoint/teams/etc 中,获取文件的链接(通常在 Web 浏览器中打开文件)
- 删除之后的所有内容?在链接中并将其替换为 download=1
- 在本地保存文件的副本并使用您的首选设置在 JMP 中打开它,然后打开并复制保存到该数据表中的“源”脚本。
- 将文件位置替换为您刚刚修改的 url。
您的脚本看起来像这样:
//Authenticate - this caches credentials for a while but not forever, would replace this with your sharepoint URL.
Web( "https://teams.microsoft.com", JMP window );
//once authenticated then open the file
dt = Open("https://company.sharepoint.com/:x:/r/sites/Site/Shared%20Documents/Folder/Subfolder/File%20name.xlsx?download=1",
Worksheets( "Sheet 1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 1 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);