找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 32440|回复: 10

[文本处理] 批处理如何对Excel表格的数据按年级进行人数统计及人名汇总?

[复制链接]
发表于 2016-4-2 23:33:39 | 显示全部楼层 |阅读模式
目标文件是excel,每个名字后面对应一个数字,由1或2或3构成。看图参考,每个数字代表不同的年级。批处理或其他方法也行。运算结果放在新的记事本就行。

批处理后的结果要求:
一年级人数(3名) :张一,李善,赵武。
二年级人数(3名) :张一,王二,王二。
三年级人数(2名) :李善,赵武。
班级总人数:8名。

评分

参与人数 1PB -4 收起 理由
pcl_test -4 未按版规发帖

查看全部评分

发表于 2016-4-2 23:58:44 | 显示全部楼层
只想说Excel自带分类汇总

评分

参与人数 1技术 +1 收起 理由
codegay + 1 1

查看全部评分

发表于 2016-4-3 00:20:55 | 显示全部楼层
一句话,楼主暴露了,Excel没学好\批处理也没学好.

以及楼主帖子的原标题,"批处理,数学计算可以吗?"
这跟科不学科学计算的,毛关系没有.就是普通的计算.
 楼主| 发表于 2016-4-3 19:58:02 | 显示全部楼层
回复 2# pcl_test

Excel自带分类汇总,我想表达的是批处理的方法应用,谢谢啦。
发表于 2016-4-3 20:02:15 | 显示全部楼层
回复 4# mick00034
那你会导出csv不?
发表于 2016-4-3 20:23:43 | 显示全部楼层
你以为我大ms的宏(vba)是吃白饭的么?
发表于 2016-4-3 20:25:51 | 显示全部楼层
方法就像这样
  1. @echo  off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1,2" %%a in ('more +9 "%~f0"') do (
  4.     set "#%%b=!#%%b!%%a "
  5.     set /a _%%b+=1
  6. )
  7. for /f "delims=#=" %%a in ('set #') do echo;%%a !_%%a! !#%%a!&set /a s+=!_%%a!
  8. echo;%s%
  9. pause
  10. a 2
  11. b 3
  12. c 1
  13. c 2
  14. e 1
  15. f 4
  16. a 1
  17. y 4
复制代码

评分

参与人数 1技术 +1 收起 理由
mick00034 + 1 乐于助人

查看全部评分

发表于 2016-4-3 21:37:23 | 显示全部楼层
赌五毛,楼主继续来追问版主怎么弄.
发表于 2016-4-3 21:37:56 | 显示全部楼层
本帖最后由 bailong360 于 2016-4-3 22:33 编辑
  1. 1>1/* :
  2. @echo off
  3. setlocal enabledelayedexpansion
  4. set "xlsFile=C:\test.xls"
  5. for /f "delims=" %%i in ("%xlsFile%") do set "xlsFile=%%~fi"
  6. for /f "tokens=1,2 delims=, " %%i in ('cscript -nologo -e:jscript "%~f0" "%xlsFile%"') do (
  7.     set /a #%%j+=1
  8.     set ##%%j=%%i,!##%%j!
  9. )
  10. for /f "delims=#=" %%i in ('set ##') do echo %%i年级人数(!#%%i!):!##%%i:~,-1!.
  11. del "%xlsFile:.xls=.csv%"
  12. pause
  13. exit /b
  14. */
  15. var xlsFile = WScript.Arguments.Item(0);
  16. var csvFile = xlsFile.replace('.xls', '.csv');
  17. var FSO = new ActiveXObject('Scripting.FileSystemObject');
  18. var Excel = new ActiveXObject('Excel.Application');
  19.     Excel.DisplayAlerts = 0;
  20. var WBook = Excel.Workbooks.Open(xlsFile);
  21.     WBook.SaveAs(csvFile , 6);
  22.     WBook.Save();
  23.     WBook.Close();
  24. Excel.Quit();
  25. WScript.Echo(FSO.OpenTextFile(csvFile , 1).ReadAll().replace(/(\d+),/g, '$1 \r\n').replace(/^,/gm, ''));
复制代码
练手来的
话说怎么才能不弹那个是否保存的对话框...

评分

参与人数 1技术 +1 收起 理由
mick00034 + 1 感谢分享

查看全部评分

发表于 2016-4-3 22:20:24 | 显示全部楼层
回复 9# bailong360

直接屏蔽掉
Excel.DisplayAlerts = 0;

评分

参与人数 1技术 +1 收起 理由
bailong360 + 1 乐于助人

查看全部评分

发表于 2016-4-3 22:23:09 | 显示全部楼层
回复 8# codegay

嗯,你会暴富的

评分

参与人数 1技术 +1 收起 理由
codegay + 1 1

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 09:14 , Processed in 0.020156 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表