标题: [文本处理] 批处理如何对Excel表格的数据按年级进行人数统计及人名汇总? [打印本页]
作者: mick00034 时间: 2016-4-2 23:33 标题: 批处理如何对Excel表格的数据按年级进行人数统计及人名汇总?
目标文件是excel,每个名字后面对应一个数字,由1或2或3构成。看图参考,每个数字代表不同的年级。批处理或其他方法也行。运算结果放在新的记事本就行。
批处理后的结果要求:
一年级人数(3名) :张一,李善,赵武。
二年级人数(3名) :张一,王二,王二。
三年级人数(2名) :李善,赵武。
班级总人数:8名。
作者: pcl_test 时间: 2016-4-2 23:58
只想说Excel自带分类汇总
作者: codegay 时间: 2016-4-3 00:20
一句话,楼主暴露了,Excel没学好\批处理也没学好.
以及楼主帖子的原标题,"批处理,数学计算可以吗?"
这跟科不学科学计算的,毛关系没有.就是普通的计算.
作者: mick00034 时间: 2016-4-3 19:58
回复 2# pcl_test
Excel自带分类汇总,我想表达的是批处理的方法应用,谢谢啦。
作者: happy886rr 时间: 2016-4-3 20:02
回复 4# mick00034
那你会导出csv不?
作者: 林小七 时间: 2016-4-3 20:23
你以为我大ms的宏(vba)是吃白饭的么?
作者: pcl_test 时间: 2016-4-3 20:25
方法就像这样- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=1,2" %%a in ('more +9 "%~f0"') do (
- set "#%%b=!#%%b!%%a "
- set /a _%%b+=1
- )
- for /f "delims=#=" %%a in ('set #') do echo;%%a !_%%a! !#%%a!&set /a s+=!_%%a!
- echo;%s%
- pause
- a 2
- b 3
- c 1
- c 2
- e 1
- f 4
- a 1
- y 4
复制代码
作者: codegay 时间: 2016-4-3 21:37
赌五毛,楼主继续来追问版主怎么弄.
作者: bailong360 时间: 2016-4-3 21:37
本帖最后由 bailong360 于 2016-4-3 22:33 编辑
- 1>1/* :
- @echo off
- setlocal enabledelayedexpansion
- set "xlsFile=C:\test.xls"
- for /f "delims=" %%i in ("%xlsFile%") do set "xlsFile=%%~fi"
- for /f "tokens=1,2 delims=, " %%i in ('cscript -nologo -e:jscript "%~f0" "%xlsFile%"') do (
- set /a #%%j+=1
- set ##%%j=%%i,!##%%j!
- )
- for /f "delims=#=" %%i in ('set ##') do echo %%i年级人数(!#%%i!):!##%%i:~,-1!.
- del "%xlsFile:.xls=.csv%"
- pause
- exit /b
- */
- var xlsFile = WScript.Arguments.Item(0);
- var csvFile = xlsFile.replace('.xls', '.csv');
- var FSO = new ActiveXObject('Scripting.FileSystemObject');
- var Excel = new ActiveXObject('Excel.Application');
- Excel.DisplayAlerts = 0;
- var WBook = Excel.Workbooks.Open(xlsFile);
- WBook.SaveAs(csvFile , 6);
- WBook.Save();
- WBook.Close();
- Excel.Quit();
- WScript.Echo(FSO.OpenTextFile(csvFile , 1).ReadAll().replace(/(\d+),/g, '$1 \r\n').replace(/^,/gm, ''));
复制代码
练手来的
话说怎么才能不弹那个是否保存的对话框...
作者: pcl_test 时间: 2016-4-3 22:20
回复 9# bailong360
直接屏蔽掉
Excel.DisplayAlerts = 0;
作者: pcl_test 时间: 2016-4-3 22:23
回复 8# codegay
嗯,你会暴富的
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |