标题: [文件操作] 求助:提取excel表格数据到另一个表格里,用批处理或VBA如何实现? [打印本页]
作者: CAIT 时间: 2022-11-21 21:28 标题: 求助:提取excel表格数据到另一个表格里,用批处理或VBA如何实现?
核酸筛查时一般会用混管方式,每一管人员信息在一个excel表中,比如下面内容——因excel表格无法上传,我转为csv:- 被采样人姓名,证件号码,证件类型,手机号,与本人关系,采集时间,采样点名称,采样员姓名,采样人手机号,试管码
- 张三,510229194201263125,身份证,13752938925,本人,2022-11-21 09:04:03,妇幼医院,石人竹,18996179725,10003813400195
- 李四,510229194301263126,身份证,13752938926,本人,2022-11-21 09:05:03,妇幼医院,石人竹,18996179725,10003813400195
- 王五,510229194501263127,身份证,13752938927,本人,2022-11-21 09:06:03,妇幼医院,石人竹,18996179725,10003813400195
复制代码
然后,混管追阳过程中,需要将上述信息导入到另一个表中,csv内容如下:- 序号,采样点,试管码,管长,人数,阳性
- 1,妇幼医院,10003813400195,张三,3,1
复制代码
这个导入过程,用批处理能否实现?或者VBA?
谢谢!
作者: idwma 时间: 2022-11-22 21:34
- #@&cls&powershell "type '%~f0'|out-string|iex"&pause&exit
- $a=new-object -com excel.application
- $a.Application.DisplayAlerts=0
- $z=@{}
- dir *.xls*|%{
- $b=$_.name
- $c=$a.workbooks.open($_.fullname)
- $c.saveas("$b.csv",6)
- $c.close()
- gc "$b.csv"|ConvertFrom-Csv|%{if($z[$_.试管码] -eq $null){$z[$_.试管码]=@{}};$z[$_.试管码][0]+=1;$z[$_.试管码][1]='{0},{1}'-f $_.采样点名称,$_.试管码}
- }
- $a.quit()
- $d=@('序号,采样点,试管码,管长,人数,阳性')
- $z.keys|%{$d+='{0},{1},{2},{3},{4}' -f ++$i,$z[$_][1],"张三",$z[$_][0],1}
- $d|sc 1.csv
复制代码
作者: terse 时间: 2022-11-23 22:52
- @echo off&setlocal enabledelayedexpansion
- rem 存为ansi文件
- for /f "tokens=10 delims=," %%a in (a.csv) do set /a _%%a+=1
- (echo;序号,采样点,试管码,管长,人数,阳性
- for /f "skip=1 tokens=1,7,10 delims=," %%a in (a.csv) do (
- set /a n+=1
- echo;!n!,%%b,%%c,%%a,!_%%c!,1
- ))>b.csv
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |