我正在寻找一个 M-Function,它返回当前打开的 Excel 电子表格文件名,没有目录和扩展名。
即,如果打开的电子表格位于此处:
C:\HPCLMHSTLI_930.XLSX
我想:
HPCLMHSTLI_930
注意:我使用一个自定义 M 函数来完成这项工作,该函数读取一个设置表,其中定义了两个单元格,如下所示:
=MID(CELL("文件名"),SEARCH("[",CELL("文件名"))+1, SEARCH("]",CELL("文件名"))-SEARCH("[",CELL("文件名"))-1)
=LEFT(B3,(搜索(".",B3)-1))
所以我不是在寻找这个解决方案。这个解决方案看起来工作量很大,应该有一个更优雅的 M-Language 函数来返回当前打开的电子表格文件名。
最佳答案
我不太明白你是如何得到路径的——我猜那是 Cell("fileName"),但是稍微摆弄一下 M 代码,我想出了以下内容:
let
x = "C:\HPCLMHSTLI_930.XLSX",
y=Text.AfterDelimiter(x,"\"),
z=Text.BeforeDelimiter(y,".")
in
z
这似乎可以解决问题。由于文件名中可以有多个句点,这可能太简单了,但如果你的文件名足够简单,这可能会起作用。但这可以通过以下方式将其包装在函数中来改进:
let
ParseFileName = (x) =>
let
y=Text.AfterDelimiter(x,"\"),
z=Text.BeforeDelimiter(y,".")
in z
in
ParseFileName
然后使用这样的方法调用它:let
Source = ParseFileName("C:\HPCLMHSTLI_930.XLSX")
in
Source
关于excel - Power Query - 获取 Excel 电子表格文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72078791/