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

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

目标文件是excel,每个名字后面对应一个数字,由1或2或3构成。看图参考,每个数字代表不同的年级。批处理或其他方法也行。运算结果放在新的记事本就行。

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

评分人数

只想说Excel自带分类汇总
1

评分人数

TOP

一句话,楼主暴露了,Excel没学好\批处理也没学好.

以及楼主帖子的原标题,"批处理,数学计算可以吗?"
这跟科不学科学计算的,毛关系没有.就是普通的计算.
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 2# pcl_test

Excel自带分类汇总,我想表达的是批处理的方法应用,谢谢啦。

TOP

回复 4# mick00034
那你会导出csv不?

TOP

你以为我大ms的宏(vba)是吃白饭的么?
活着就是为了改变世界

TOP

方法就像这样
  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

评分人数

TOP

赌五毛,楼主继续来追问版主怎么弄.
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 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

评分人数

TOP

回复 9# bailong360

直接屏蔽掉
Excel.DisplayAlerts = 0;
1

评分人数

TOP

回复 8# codegay

嗯,你会暴富的
1

评分人数

TOP

返回列表