[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 求助:提取excel表格数据到另一个表格里,用批处理或VBA如何实现?

核酸筛查时一般会用混管方式,每一管人员信息在一个excel表中,比如下面内容——因excel表格无法上传,我转为csv:
  1. 被采样人姓名,证件号码,证件类型,手机号,与本人关系,采集时间,采样点名称,采样员姓名,采样人手机号,试管码
  2. 张三,510229194201263125,身份证,13752938925,本人,2022-11-21 09:04:03,妇幼医院,石人竹,18996179725,10003813400195
  3. 李四,510229194301263126,身份证,13752938926,本人,2022-11-21 09:05:03,妇幼医院,石人竹,18996179725,10003813400195
  4. 王五,510229194501263127,身份证,13752938927,本人,2022-11-21 09:06:03,妇幼医院,石人竹,18996179725,10003813400195
复制代码
然后,混管追阳过程中,需要将上述信息导入到另一个表中,csv内容如下:
  1. 序号,采样点,试管码,管长,人数,阳性
  2. 1,妇幼医院,10003813400195,张三,3,1
复制代码
这个导入过程,用批处理能否实现?或者VBA?
谢谢!

  1. #@&cls&powershell "type '%~f0'|out-string|iex"&pause&exit
  2. $a=new-object -com excel.application
  3. $a.Application.DisplayAlerts=0
  4. $z=@{}
  5. dir *.xls*|%{
  6. $b=$_.name
  7. $c=$a.workbooks.open($_.fullname)
  8. $c.saveas("$b.csv",6)
  9. $c.close()
  10. gc "$b.csv"|ConvertFrom-Csv|%{if($z[$_.试管码] -eq $null){$z[$_.试管码]=@{}};$z[$_.试管码][0]+=1;$z[$_.试管码][1]='{0},{1}'-f $_.采样点名称,$_.试管码}
  11. }
  12. $a.quit()
  13. $d=@('序号,采样点,试管码,管长,人数,阳性')
  14. $z.keys|%{$d+='{0},{1},{2},{3},{4}' -f ++$i,$z[$_][1],"张三",$z[$_][0],1}
  15. $d|sc 1.csv
复制代码

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. rem 存为ansi文件
  3. for /f "tokens=10 delims=," %%a in (a.csv) do set /a _%%a+=1
  4. (echo;序号,采样点,试管码,管长,人数,阳性
  5. for /f "skip=1 tokens=1,7,10 delims=," %%a in (a.csv) do (
  6.      set /a n+=1
  7.      echo;!n!,%%b,%%c,%%a,!_%%c!,1
  8. ))>b.csv
  9. pause
复制代码

TOP

返回列表