#Powerquery 利用M函数合并文件(CSV、Text、Xlsx)
在日常工作中,我们往往会遇到多个文件需要合并的情况,本文一起探讨一下利用M函数合并文件的案例。
由于需要合并的文件的格式不同,也需要选择不同的M函数来进行合并,本文将分享三个格式的合并案例。
首先介绍一下合并步骤,
1:对新建一个新查询,数据源选择为目标文件的路径。

2:点击转化数据

3:添加一个自定义列

4:利用M函数合并
=Csv.Document([Content],[Delimiter=",", Encoding=936])
5:展开对应TABLE数据即可完成全部操作,合并XLSX以及TEXT格式的文件也是同理可得。
解析:此处主要利用两个M函数进行合并操作
Csv.Document
Csv.Document函数说明:
Csv.Document函数:返回CSV文档的内容作为表
表达式:function(source as any, optional columns as any, optional delimiteras any, optional extraValues as nullable, optional encoding as nullableTextEncoding Type) as table
说明:此函数在使用时需要为其指定四个参数
source是CSV或TXT文件的内容,可以是任意数据类型
columns是可选参数,是要导入的字段个数,如果要导入CSV或TXT文件中的所有字段,则可以省略columns
delimiter是分隔符,为可选参数,如果未指定则使用逗号作为分隔符
extraValues是可选参数,有关extraValues的支持值,请参阅ExtraValues.Type,一般不用
encoding是编码类型,是可选参数
=Csv.Document([Content],[Delimiter=",", Encoding=936]) #CSV文件默认值为936,CSV合并M函数
=Csv.Document(File.Contents(TXT文件路径),[Delimiter=" ", Columns=字段个数,Encoding=1200)#中文TXT文件默认值为1200,TXT合并M函数
无论文件的后缀名是CSV还是TXT,这两类文件都属于文本文件。构成文本文件的内容有两部分,一个是数据内容,另一个是字段与字段间的分隔符。CSV和TXT两种文本文件最大的区别在于他们的分隔符不同。CSV文件固定用“,”进行分隔,而TXT文件的分隔符可以自由设定为任意字符串,但通常情况下默认的TXT文件的分隔符为制表符,也就是按下Tab键时生成的字符。除此之外,为了正确显示中文字符,文本文件中还需要考虑文字编码因素。在Excel中默认的中文CSV文件的文字编码为“936”,而默认的中文TXT文件的文字编码为“1200”。
因为此处是合并csv文件,一般分隔符为",",代码 [Delimiter=",", Encoding=936] , 合并txt文件,此处分割符为 " ",Encoding=1200。
Excel.workbook函数说明:
Excel.Workbook函数:从Excel工作簿返回工作表的记录
表达式:function(workbook as binary, optional useHeaders as nullablelogical, optional delayTypes as nullable logical) as table
说明:此函数可以将二进制的Excel文件信息转换为表数据,函数需要三个参数
workbook是必选参数,是要导入Excel文件的二进制信息,一般使用File.Contents函数可以将指定路径下的Excel文件保存为二进制信息
useHeaders是可选参数,一般使用null
delayTypes是可选参数,一般使用true
=Excel.Workbook([content])
其他操作同上
总结
利用M函数合并文件,需要根据目标的文件格式,选择不同的M函数,在合并CSV和TXT的文件时,需要注意分隔符和编码格式,来避免展开乱码的问题,而标准XLSX的格式则不需要,直接M函数展开即可。
以上,期待下次的分享。
#Powerquery 利用M函数合并文件(CSV、Text、Xlsx)的更多相关文章
- linux下用scp命令在两个服务器之间传输文件,利用php_scp函数进行文件传输
在linux下利用scp进行文件传输, 从服务器下载文件 scp username@servername:/path/filename /path/filename 上传本地文件到服务器 scp /p ...
- c#(winform,webform通用)利用npoi将xls文件复制为xlsx文件(excel的修改,保存,包括excel2003-office2007+的处理)
1.程序界面 每次需要处理excel文件的时候,都是去百度找方案,真是气一头火,今天好好总结一下,下次就不用度娘了. 我是用winform来试验的,因为winform比较方便测试,实际上只要是在.ne ...
- 152-技巧-Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv
152-技巧-Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv 附件下载地址:https://jiaopengzi.com/2602.html 一.背景 在我们使用 ...
- Linux:不同文件相同列字符合并文件(awk函数)
存在file1.txt,其内容如下: H aa 0 0 1 -9 H bb 0 0 2 -9 H cc 0 0 2 -9 存在file2.txt,其内容如下: H aa 0 0 0 -9 asd qw ...
- DiscuzX /source/function/function_core.php通用核心函数库文件分析
... <?php /** * [Discuz!] (C)2001-2099 Comsenz Inc. * This is NOT a freeware, use is subject to l ...
- 利用XPath读取Xml文件
之所以要引入XPath的概念,目的就是为了在匹配XML文档结构树时能够准确地找到某一个节点元素.可以把XPath比作文件管理路径:通过文件管理路 径,可以按照一定的规则查找到所需要的文件:同样,依据X ...
- 计算机程序的思维逻辑 (64) - 常见文件类型处理: 属性文件/CSV/EXCEL/HTML/压缩文件
对于处理文件,我们介绍了流的方式,57节介绍了字节流,58节介绍了字符流,同时,也介绍了比较底层的操作文件的方式,60节介绍了随机读写文件,61节介绍了内存映射文件,我们也介绍了对象的序列化/反序列化 ...
- 利用tornado实现表格文件预览
项目介绍 本文将介绍笔者的一个项目,主要是利用tornado实现表格文件的预览,能够浏览的表格文件支持CSV以及Excel文件.预览的界面如下: 下面我们将看到这个功能是如何通过tornado ...
- Loadrunner 脚本开发-利用web_submit_data函数实现POST请求
脚本开发-利用web_submit_data函数实现POST请求 by:授客 QQ:1033553122 概述 web_link()和web_url()函数都是页面访问型函数,实现HTTP请求中的 ...
- Java编程的逻辑 (64) - 常见文件类型处理: 属性文件/CSV/EXCEL/HTML/压缩文件
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...
随机推荐
- Tensorflow Debug Record
problem: InternalError (see above for traceback): Blas GEMM launch failed solve: sudo rm -rf ~/.nv/ ...
- LeetCode224 基本计算器
idea:刚开始是打算分类讨论,建立了数字栈和字符栈,按照传入字符当时两个栈的基本情况分类,结果讨论完之后分类太麻烦,导致分析完了之后漏洞不少.我觉得这道题难点在于括号和负号的处理,一开始将导致计算机 ...
- python中时间的datatime的模块
datetime.datetime.now().strftime('%Y-%m-%d-%H_%M_%S')1.python datetime模块用strftime 格式化时间 import datet ...
- [jointjs] 自定义shape
前面一篇写了使用jointjs实现自动布局和拖拽缩放,这篇记录一下自定义图形. 首先jointjs内置的图形有很多,文档已经列出来了: 但是有时候这些图形满足不了我们的需求,就需要我们自己去绘制自己想 ...
- 第八次团队作业:Beta冲刺(凡事预则立)
这个作业属于哪个课程 2018级计算机和综合实验班 这个作业要求在哪里 Beta冲刺要求 这个作业的目标 Beta冲刺 改进完善的功能 完善之前年度报告功能 尽快上线小程序 增加的新功能 小程序打卡功 ...
- spring-dao.xml
本文件的作用:1整合dao层,连接数据库 2设置数据库连接池3配置SqlSessionFactory对象4配置扫描Dao接口包,动态实现dao接口,注入到spring容器中 Ps:此文件可以替代myb ...
- OS基础-四大基本特征
现代计算机操作系统的四大基本特性(并发/共享/虚拟/异步) 1.并发性 1.1.并发与并行区别 并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令.并发需要硬件支持,如多流 ...
- Javaweb学习笔记第十四弹---对于Cookie和Filter的学习
Apache Tomcat - Tomcat Native Downloads 会话追踪技术 会话:打开浏览器,建立连接,直到一方断开连接,会话才会结束:在一次会议中,可以有多次请求. 会话追踪:在多 ...
- Linux0.11源码学习(二)
Linux0.11源码学习(二) linux0.11源码学习笔记 参考资料:https://github.com/sunym1993/flash-linux0.11-talk 源码查看:https:/ ...
- Python自动化环境搭建轻轻松松---selenium
其实安装selenium实现自动化搭建环境也不拿 一共四步 1.Python开发环境 2.安装selenium包 3.安装浏览器 4.安装你安装的浏览器驱动 一: 想要实现Python环境不可能缺席: ...