工作之中,经常地需要获取、合并、处理一些csv和txt这些文件,就需要用到Csv.Document这个函数.

适用csv和txt文本格式的文件
函数 Csv.Document     说明
参数1 binary数据 File.Contents(路径)获取
参数2

一,数字,代表几列

二,字段名

参数3 分隔符 默认为逗号
参数4 多余列处理方式   参照参数2的列数,
  0  多出的列为一个list
  1  如果列数多于参数2的列数就会出错
  2  列数就出错 2就是忽略错误
参数5 编码方式 如果有乱码,填上0或936

观察上面的参数,很多其实都学过了.比如,参数2和参数4这个类似Table.SplitColumn里的参数3和最后一个参数,一摸一样的.所以如果之前的基础都掌握了,学习起来毫不费劲.详细解释看链接:

4.7 拆分表列函数Table.SplitColumn_01

直接来个案例:

制作查找拼音的自定义函数,如果张三→zhang san

获取这个拼音,首先需要一张汉字拼音对照表.

对照表是在.csv后缀的文件里,几千行,两列.其实csv格式的文件就是文本文档,用记事本打开,实际数据是这样的.

用excel打开,分隔符为逗号隔开,隔开的数据分别为一列.

解题:

(1).获取数据库数据.

csv后缀的用Csv.Document来获取,

参数1:是个binary数据,获取本地文件为binary数据的,用File.Contents(路径)

参数2:这里因为是两列,所以直接写{"拼音","汉字"},,当然也可以直接写数字2,但是数字2就不直观了,没有指定好字段名.看个人习惯写.

参数3:分隔符,默认分隔符为逗号,所以这里直接写个null或者","

参数4:这个是多出的列的处理方式,这里只有两列,之前已经写了两个字段名,所以直接写个1或者2,保险的方法是写上2,忽略错误.

参数5:这个是编码,如果获取的数据出现了乱码,就填上0或者936

填上上述的参数:

(2)就是查找了,现在用文本 "中國加油,武汉加油" 在这里汉字和拼音对照表只有收录了常用的汉字,类似这里的繁体字國和标点符号就查找不到.等会需要对查找不到的字符进行处理,保持不变就可以.

在查找的时候建议使用Table.Skip和List.Skip 这两个函数一旦查找到数据就停止了.如果用Table.SelectRows和List.Select就会查找全部的数据.在效率上就慢了.

现在把文本转为list,用List.Transform逐个查找.

(3)对获取到的表格进行处理.

(4)合并数据.

(5)制做自定义函数.

根据要求最后是:  张三→zhang san

原代码是这样的,现在把代码改成自定义函数.

变量有两个,对照表路径和需要转拼音的文本

紫色部分就是源代码需要修改的部分.

(6)最后体验一下.

------KO------

相关文件和代码在群里下载

热爱PQ的可以加入此群,大家可以一起学习一起进步

群名:轻松学会PowerQuery

群号:830974032

.net core 获取binary 文件_7.2 获取文本数据_Csv.Document相关推荐

  1. python获取某文件路径_Python获取当前文件路径

    一. Python 获取当前文件路径方法 2. sys.path[0] 获取文件当前工作目录路径(绝对路径) sys.argv[0]|获得模块所在的路径(由系统决定是否是全名) 若显示调用python ...

  2. .net core 获取binary 文件_Linux操作系统文件目录

    /bin bin是Binary的缩写.这个目录存放着最经常使用的命令. /boot这里存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件. /dev dev是Device(设备) ...

  3. php获取服务器文件路径,php获取服务器路径

    php获取服务器路径 内容精选 换一换 为加强对系统数据的容灾管理,云堡垒机支持配置日志备份,提高审计数据安全性和系统可扩展性.本小节主要介绍如何在系统配置FTP/SFTP服务器参数,将日志远程备份至 ...

  4. java怎么获取服务器文件夹,java获取远程服务器的文件夹

    java获取远程服务器的文件夹 内容精选 换一换 工具中所有涉及上传文件功能的,如果需要上传的文件大于1GB或者解压后超过剩余磁盘空间的一半,则需要释放磁盘空间或手动将文件上传至服务器,其他情况可通过 ...

  5. 如何读取服务器的文件夹大小,请教如何获取outlook文件夹对话框中服务器数据大小?...

    Hi, 感谢你在MSDN发帖. 对于这篇文章,我认为可以这么理解. 如果你想获取服务器上面的文件夹的大小,outlook通常使用IMsgStore::OpenEntry 这个方法并且使用MAPI_NO ...

  6. php获取压缩文件列表,php获取所有文件并压缩

    /* * 压缩文件 * */ function zip($files){ $zipName = 'download.zip'; $zip = new \ZipArchive;//使用本类,linux需 ...

  7. android获取系统资源文件,Android 系统文件获取

    Android 系统自身自带有存储,另外也可以通过 SD 卡来扩充存储空间. 前者空间较小,后者空间大,但后者不一定可用. 开发应用,处理本地数据存取时,可能会遇到这些问题: 1.需要判断 SD 卡是 ...

  8. webclient无法获取html文件,C# WebClient获取网页源码的方法

    效果如图 完整代码如下using System; using System.Collections.Generic; using System.ComponentModel; using System ...

  9. Linux获取执行文件路径,如何 获取linux进程的执行文件路径

    进入/proc目录 ps查看所有契合 ./cmd的进程,找出其对应的进程号 用ll命令: ll 进程号 如下显示一个示例: [root@Cluster1 proc]# ll 22401 total 0 ...

最新文章

  1. Github近期最有趣的10款机器学习开源项目
  2. 有关弹窗页面的注意问题
  3. springcloud ribbon retryTemplate操作流程分析
  4. 纯CSS实现提示框小三角
  5. php session 反序列化,PHP SESSION反序列化本地样例分析
  6. 6. 以下耦合度中最松散的耦合是_什么是程序设计中的高内聚、低耦合?
  7. 简书UI易用性缺陷:投稿按钮太小
  8. Linux下使用NMON监控、分析系统性能
  9. 《近匠》专访机智云 CTO 刘琰——从 0 到 1 开启智能化硬件开发
  10. java g.drawline_菜鸟求教:关于Graphics g中的g.drawLine问题
  11. 网络安全学习--破解Win7密码
  12. C# 程序开机自动启动
  13. Win8右键反应慢的原因与解决办法
  14. VCC和GND短路,怎么找问题?
  15. 请问matlab里面exp函数怎么用啊,Matlab基本函数-exp函数
  16. 2.4 放大电路静态工作点的稳定
  17. Vue 中实现Video视频不可快进
  18. Linux_Linux指令_lsof 指令
  19. UML(Jude) | UseCase Diagram
  20. 【JS案例】分页器——使用原生JavaScript实现

热门文章

  1. 【博客大赛】使用LM2677制作的3V至24V数控可调恒压源
  2. 企业内网安全十大防护策略
  3. 解析windows已从异常关机中恢复
  4. jquery Ajax应用
  5. ArcGIS AddIN异常:无法注册程序集 未能加载文件或程序集ESRI.ArcGIS.Desktop.Addins
  6. vba 判断是否为数字
  7. easyui-combobox
  8. iOS 数据库操作(使用FMDB)
  9. 【python】类属性以及实例属性、实例方法的介绍
  10. impala的工作原理的详解(图文)