如何从 Sharepoint 上的 Excel 文件中提取数据?大家好,
我有一个脚本设置来打开 Excel 文件、提取所需数据、运行一些分析、将分析另存为交互式 HTML(供非 JMP 用户访问),然后关闭 JMP。 这一切在我的试播脚本中都运行良好,并且作为非编码员我特别高兴能够弄清楚这一切。 现在的挑战是这必须在两家完全独立的公司之间进行。 两家公司都可以通过 Sharepoint 访问通用的 Excel 文件。 我已获准访问 Sharepoint 上的文件。 经过多次“混乱”并找到 Web() 函数后,我现在能够在 Sharepoint 上打开 Excel 文件。但是,我无法将数据从 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( "-" )
)
);
数据存取质量和工艺工程分享和交流结果回复:如何从 Sharepoint 上的 Excel 文件中提取数据?@ih它还活着! 它将数据从 Sharepoint 提取到数据表中。 非常感谢您引导我找到这个解决方案。 我在社区帖子中搜索了与 Sharepoint 相关的查询,但没有搜索 Office 365。 @哈德纳感谢您建议添加时间延迟以允许凭证握手。 让一切变得不同,让我很开心!
当我(可能)在保存到 Sharepoint 时遇到问题时,我会回来的! 
回复:如何从 Sharepoint 上的 Excel 文件中提取数据?这确实是我正在使用的解决方案......
open() 本身将使用一些缓存的凭据,但我不确定这些凭据会持续多久。
对我来说,添加的初始 web() 是一个不错的解决方案,因为我用它来打开我自己的内部“company.sharepoint”位置我们的内部 SSO 致力于此! 我在 web() 之后等待了很长一段时间(15 秒),如果它没有立即使用缓存的凭据打开,它仍然可以通过使用我的凭据进行内部登录来工作,而无需任何交互。通过这种方式,我有各种脚本按计划作业运行,它们似乎能够可靠地从共享点打开我们的内部 Excel 工作表。
回复:如何从 Sharepoint 上的 Excel 文件中提取数据?查看这篇文章,我*认为*您会遇到同样的问题。当时我不认为有一个完美或完全自动化的解决方案,但也许@哈德纳从那时起发现了什么?
从 JMP/JSL 打开 Microsoft Office 365 基于云的 Excel?
简而言之,首先打开 Web 浏览器窗口进行身份验证,然后打开文件。
获取网址:
- 在 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( "-" )
)
);