我需要通过命令行将文件上传到 OneDrive。这将通过分发给最终用户的批处理文件来完成。
\n通过在 Stack Overflow 上搜索,我发现了类似这样的问题,其中提到您需要使用 Azure 注册应用程序并创建应用程序密码。我没有在我工作的组织中执行此操作所需的权限,也无法执行任何需要管理员帐户的操作。所以我无法安装任何软件 - 我必须使用 Windows 10 附带的软件。我也无法使用 VBA,因为它被阻止了。
\n我已经成功地从 OneDrive 下载文件,没有任何类似的东西,使用此处描述的过程:
\n\n\n\n
\n- 在任一浏览器中打开 URL。
\n- 使用 Ctrl+Shift+I 打开开发人员选项。
\n- 转到网络选项卡。
\n- 现在点击下载。不需要保存文件\xe2\x80\x99。我们只需要浏览器从服务器请求文件时的网络活动。
\n- 将出现一个新条目,类似于 \xe2\x80\x9cdownload.aspx?\xe2\x80\xa6\xe2\x80\x9d。
\n- 右键单击该 和
\nCopy \xe2\x86\x92 Copy as cURL
。- 将复制的内容直接粘贴到终端中,并追加 \xe2\x80\x98--output file.extension\xe2\x80\x99 将内容保存在 file.extension 中,因为\n终端无法显示二进制文件数据。
\n例子:
\nRun Code Online (Sandbox Code Playgroud)\ncurl https://xyz.sharepoint.com/personal/someting/_layouts/15/download.aspx?UniqueId=cefb6082%2D696e%2D4f23%2D8c7a%2\n
\xe2\x80\xa6。一些长文本 \xe2\x80\xa6.\ncCtHR3NuTy82bWFtN1JBRXNlV2ZmekZOdWp3cFRsNTdJdjE2c2syZmxQamhGWnMwdkFBeXZlNWx2UkxDTkJic2hycGNGazVSTnJGUnY1Y1d0WjF5SDJMWHBqTjRmcUNUU WJxVnZYb1JjRG1WbEtjK0VIVWx2clBDQWNyZldid1R3PT08L1NQPg==;\ncucg=1\xe2\x80\x99 --压缩--输出文件.扩展名
\n
在浏览器上单击“上传”后,我尝试执行类似的操作,但在尝试过滤请求时没有找到任何有用的东西。
\n我找到了这 两个问题,但没有上传键盘快捷键,AFAICT。此外,最终用户还将文件上传到我从 OneDrive 与他们共享的文件夹中。将 Chrome 或 Edge 作为最小化窗口打开很好,但我不能只是将一个窗口推到他们面前,自动点击一些东西 …
下面是 5 列 - 第 6 列包含所需的结果:5 列中的每个可能排列的名称。
两行只有两列有值 - 因此第 6 列中只有两种排列(由“;”分隔)。
一行有 4 个值,因此有 24 种排列。
抱歉,我无法弄清楚如何将 Excel 中的表格粘贴到 Stack 中,而无需全部重写。
真实数据集中的行可以有 1 个值、5 个值或介于两者之间的任何值。
这里的答案似乎只适用于二维数组 - 该数组是一维的。我想不出任何明显的方法来使其成为 2d 以便这些解决方案发挥作用,这似乎也不是一种有效的方法。上述答案中的一个公式如下(我查看了所有这些公式,但无法弄清楚如何使它们适应我的需求):
=LET(A,A1:C3,B,ROWS(A),C,COLUMNS(A),D,B^C,E,UNIQUE(MAKEARRAY(D,C,LAMBDA(rw,cl,INDEX(IF(A="","",A),MOD(CEILING(rw/(D/(B^cl)),1)-1,B)+1,cl)))),FILTER(E,MMULT(--(E<>""),SEQUENCE(C,,,0))=C))
Run Code Online (Sandbox Code Playgroud)
我在 google 上搜索到的大多数解决方案似乎也无法在 1 行 5 列的简单数组上工作(或者我无法让它们工作)。
我尝试从头开始做,最终生成了一个仅包含数字 1-5 并且没有重复的数字列表 -
=LET(firstperm,VALUE(CONCAT(SEQUENCE(1,COLUMNS(Tablestu[@[First Name]:[Preferred Last Name]])))),lastperm,VALUE(CONCAT(SORT(SEQUENCE(1,COLUMNS(Tablestu[@[First Name]:[Preferred Last Name]])),,-1,TRUE))),diff,(lastperm-firstperm)+1,list,SEQUENCE(diff,1,firstperm),wanted,(IF((ISNUMBER(SEARCH("1",list))*ISNUMBER(SEARCH("2",list))*ISNUMBER(SEARCH("3",list))*ISNUMBER(SEARCH("4",list))*ISNUMBER(SEARCH("5",list))),list,"")),FILTER(wanted,wanted<>"",""))
Run Code Online (Sandbox Code Playgroud)
我想我可以以某种方式拆分这 5 位数字,并使用 INDEX 公式按该顺序返回单词。即 31452 将返回第三个单词,然后是第一个,然后是第四个,依此类推......但我仍然需要一百万次键盘头粉碎才能将其变成我需要的东西,而且它的效率将是愚蠢的低效当我到达那里时。
链接的答案似乎是正确的事情 - 我正在使用 Excel 365,我需要一个使用公式而不是 VBA 或 power query 的解决方案。
LAMDA 和 LET 都很好。