希望你一切顺利 . 我需要一些帮助 . 例如,我有3个csv文件:
1) File1.csv with 2 records / rows
firstname | lastname | city | country | emailaddress
-----------------------------------------------------
alexf sdfsd mumbai india sdf@sdf.com
----------
asfd sdfsdf toronto canada dfsd@sdf.com
2) secondfile.csv with 2 records / rows
first-name | last-name | currentcity | currentcountry | email-address
----------------------------------------------------------------------
asdf sdfkjwl sydney australia sdf@dsffwe.com
----------
lskjdf sdlfkjlkj delhi india sdflkj@sdf.com
3) userfile.csv with 2 records / rows
fname | lname | usercity | usercountry | email
-----------------------------------------------
sdf sdflj auckland new zealand sdf@sdf.com
----------
sdfsdf sdf venice italy sdf@dsf.com
现在我想创建一个单独的csv或excel或mysql或任何数据库表,其中我希望所有这些记录来自具有不同列/ Headers 名称但具有相同类型数据的所有不同csv文件 . 像这样:
singlecsvfile.csv
first_name | last_name | city | country | email_address
--------------------------------------------------------
alexf sdfsd mumbai india sdf@sdf.com
asfd sdfsdf toronto canada dfsd@sdf.com
asdf sdfkjwl sydney australia sdf@dsffwe.com
lskjdf sdlfkjlkj delhi india sdflkj@sdf.com
sdf sdflj auckland new zealand sdf@sdf.com
sdfsdf sdf venice italy sdf@dsf.com
实际上,由于数据源的类型不同,我有50个具有不同列名但具有相同类型数据的文件 . 你建议我做什么,你会建议什么策略或方式,我应该如何实现这一点 . 如果可能的话,请建议我简单的方法(excel / powerquery / powerBI)或代码(php / sql) . 我需要快速或自动化的解决方案,如数据映射 . 我搜索了很多,但找不到任何解决方案 . 建议将不胜感激 . 谢谢
2 回答
我会为此使用Power Query . 每个输入文件布局都需要一个单独的Query . 这些只会重命名列以匹配您的 singlecsvfile.csv 列名称 . 我会将每个设置为 Load To / Only Create a Connection .
然后最终 singlecsvfile 查询将使用 Append Queries 添加输入查询中的所有数据 . Power Query使用列名来组合Append中的数据 - 列的顺序(从左到右)无关紧要 .
如果您的50个文件中有任何共同的布局,我会将它们分成子文件夹 . 然后,您可以使用单个输入查询翻录子文件夹中的所有文件 - 使用 From File / From Folder 开始
Power Query将输出传递到Excel表 . 如果您确实需要CSV输出,只需录制宏以刷新Power Query和另存为CSV .
SuperUser实际上不是代码编写服务 . 话虽如此,我有一段代码应该基本上做你想要的vba . 它有一些评论所以应该是可管理的 . 可能需要一些调整,具体取决于您的文件 .