繁体   English   中英

将数据从一个Excel工作表写入到另一个工作表

[英]Write data from one excel sheet to another

我有我的文件夹中的某些文件的.csv与像名1filename.csv2filename.csv3filename.csv然后1abc.csv2abc.csv等。

我需要合并具有相同帖子名称的文件,并且每个文件都具有相同的编号。 因此,最终文件应仅包含一行标题列并附加数据的行。

示例:1.应该将1filename.csv2filename.csv3filename.csv合并到filename.csv (其中数据一个接一个地追加)

2. 1abc.csv2abc.csv将合并并形成abc.csv

我可以在批处理文件中还是在phpexcel的帮助下实现此目的? 我想在批处理文件中执行操作,但是我不确定是否有可能。

谢谢

这些是需要合并的文件,我将用不同的域拆分成千上万个文件: 在此处输入图片说明

这是csv文件的外观,一个文件最多可以包含800行,并且标题相同的列数也相同: 在此处输入图片说明

您可以使用Iin cmd:

复制/ b 1filename.csv + 2filename.csv filename.csv

复制/ b 1abc.csv + 2abc.csv abc.csv

编辑修复了小错误

原始代码未考虑文件名将按字母顺序处理,而不是按名称后的组处理。

@echo off
setlocal EnableDelayedExpansion

rem I have some .csv files in my folder 
rem with names like 1filename.csv, 2filename.csv, 3filename.csv then 1abc.csv, 2abc.csv and so on.
set "postName="
for /F %%a in ('dir /B *.csv ^| sort /+2') do (
   rem I need to merge files with same post name
   set "name=%%a"
   if "!name:~1!" neq "!postName!" (
      set "postName=!name:~1!"
      rem and each file has same no. of columns with same heading.
      rem So final file should have only one row with titles for columns 
      echo Merging data into: !postName!
      copy "%%a" "!postName!" > NUL
   ) else (
      rem and appended with data.
      (for /F "skip=1 delims=" %%b in (%%a) do echo %%b) >> "!postName!"
   )
)

您总是应该发布文件的一部分或至少描述其内容,否则我们只能猜测一下...

如果文件包含特殊的批处理字符,例如< > | ! ,则此批处理解决方案可能会失败< > | ! < > | !

编辑回复评论

请注意,图片中的信息不能复制粘贴为文本。 您应该将数据以文本形式封装在代码标签中,如下所示:

C:\ dir /b
1www.ais.csv
1www.futureshade.com.au.csv
2www.ais.csv
2www.futureshade.com.au.csv
3www.ais.csv
test.bat

C:\ test
Merging data into: www.ais.csv
Merging data into: www.futureshade.com.au.csv

C:\ dir /b
1www.ais.csv
1www.futureshade.com.au.csv
2www.ais.csv
2www.futureshade.com.au.csv
3www.ais.csv
test.bat
www.ais.csv
www.futureshade.com.au.csv

请注意,此解决方案是为第一个字符中只有一位数字的文件名设计的,因此,如果相同的帖子名称中有9个以上的文件,则此解决方案将失败(这是从一开始就应发布的详细信息类型)。

第二编辑添加输出测试

下面的测试表明此解决方案按规定工作:

C:\ dir /b
1www.ais.csv
1www.futureshade.com.au.csv
2www.ais.csv
2www.futureshade.com.au.csv
3www.ais.csv
test.bat

C:\ type 1www.ais.csv
Ad group,Keyword,Currency,Avg. Monthly Search,Competition,Suggested bic,Impr. sh
ar,In account?,In plan?,Extracted from
1AIS,ais,AUD,14800,0.01,3.39,--,N,N
1AIS,medicare,AUD,201000,0.04,2.97,--,N,N

C:\ type 2www.ais.csv
Ad group,Keyword,Currency,Avg. Monthly Search,Competition,Suggested bic,Impr. sh
ar,In account?,In plan?,Extracted from
2AIS,ais,AUD,14800,0.01,3.39,--,N,N
2AIS,medicare,AUD,201000,0.04,2.97,--,N,N

C:\ type 3www.ais.csv
Ad group,Keyword,Currency,Avg. Monthly Search,Competition,Suggested bic,Impr. sh
ar,In account?,In plan?,Extracted from
3AIS,ais,AUD,14800,0.01,3.39,--,N,N
3AIS,medicare,AUD,201000,0.04,2.97,--,N,N

C:\ type 1www.futureshade.com.au.csv
Ad group,Keyword,Currency,Avg. Monthly Search,Competition,Suggested bic,Impr. sh
ar,In account?,In plan?,Extracted from
1FUTURESHADE,ais,AUD,14800,0.01,3.39,--,N,N
1FUTURESHADE,medicare,AUD,201000,0.04,2.97,--,N,N

C:\ type 2www.futureshade.com.au.csv
Ad group,Keyword,Currency,Avg. Monthly Search,Competition,Suggested bic,Impr. sh
ar,In account?,In plan?,Extracted from
2FUTURESHADE,ais,AUD,14800,0.01,3.39,--,N,N
2FUTURESHADE,medicare,AUD,201000,0.04,2.97,--,N,N

C:\ test
Merging data into: www.ais.csv
Merging data into: www.futureshade.com.au.csv

C:\ dir /B
1www.ais.csv
1www.futureshade.com.au.csv
2www.ais.csv
2www.futureshade.com.au.csv
3www.ais.csv
test.bat
www.ais.csv
www.futureshade.com.au.csv

C:\ type www.ais.csv
Ad group,Keyword,Currency,Avg. Monthly Search,Competition,Suggested bic,Impr. sh
ar,In account?,In plan?,Extracted from
1AIS,ais,AUD,14800,0.01,3.39,--,N,N
1AIS,medicare,AUD,201000,0.04,2.97,--,N,N
2AIS,ais,AUD,14800,0.01,3.39,--,N,N
2AIS,medicare,AUD,201000,0.04,2.97,--,N,N
3AIS,ais,AUD,14800,0.01,3.39,--,N,N
3AIS,medicare,AUD,201000,0.04,2.97,--,N,N

C:\ type www.futureshade.com.au.csv
Ad group,Keyword,Currency,Avg. Monthly Search,Competition,Suggested bic,Impr. sh
ar,In account?,In plan?,Extracted from
1FUTURESHADE,ais,AUD,14800,0.01,3.39,--,N,N
1FUTURESHADE,medicare,AUD,201000,0.04,2.97,--,N,N
2FUTURESHADE,ais,AUD,14800,0.01,3.39,--,N,N
2FUTURESHADE,medicare,AUD,201000,0.04,2.97,--,N,N

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM