#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: ...
随机推荐
- [.Net]Framwork WebAPI添加接口请求监控
思路: 通过重写 ActionFilterAttribute 拦截Action的请求及返回信息,实现对接口请求的监听. 最终效果如下: 全局启用需配置如下: 局部启用需配置如下: 源码如下: 1 // ...
- ArrayList学习
核心源码 package java.util; import java.util.function.Consumer; import java.util.function.Predicate; imp ...
- java xml转为json的两种方法
java xml转为json的两种方法 <?xml version="1.0" encoding="utf-8" ?><auibinsuran ...
- OSI七层模型、TCP协议
1. 网络资产搜索引擎 2. 网站存储用户密码进行MD5加密 3. 小型Web管理系统账号密码使用base64进行加密 4. IP地址:网络位+主机位 5. 局域网中没有DHCP服务主机获取的地址范围 ...
- uglfy
uglify: npm install uglify-js -g 或者用npm install uglify-es 运行: uglifyjs demo.js -m -o demo.min.js Ugl ...
- 字符集编码cp936、ANSI、UNICODE、UTF-8、GB2312、GBK、GB18030、DBCS、UCS
一直对字符的各种编码方式懵懵懂懂,什么ANSI.UNICODE.UTF-8.GB2312.GBK.DBCS.UCS--是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们.Let's go! ...
- 网络基础-OSI七层模型
什么是OSI模型 OSI模型(或 Open Systems Interconnection Model开放系统互连模型)是网络中使用的绝对基础模型.这个关键模型提供了一个框架,规定所有联网设备将如何发 ...
- Javaweb学习笔记第六弹
本章节的存在意义是:学到PreparedStatement反应较慢,理解不透彻,来做个比较,加深印象 详细讲述PrepareStatement 与 Statement 连接数据库的部分区别 在我学习的 ...
- Axios的js文件的下载教程+相关应用
下载教程来啦! 1.进入GitHub网站,网址在这里:http://github.com 2.去搜索框搜索Axios,得到如下界面: 3.然后选择这里: 会出现如下界面: 4.点击右方的绿色按钮&qu ...
- Java 泛型与通配符 定义与使用
一.泛型 定义: 把类型明确的工作推迟到创建对象或调用方法时才明确的类型,简而言之,未明确的数据类型. 类型: 泛型类,泛型方法,方形接口. 格式 泛型类格式:class 类名<E变量>{ ...