Board logo

标题: 再来提问xls文件对比处理的问题,vbs,bat都行 [打印本页]

作者: loquat     时间: 2010-4-10 16:37    标题: 再来提问xls文件对比处理的问题,vbs,bat都行

本来想在上次那个帖子里提问的,但是原帖好像给删了,找不到。只好重开一贴。

比较两个文件。

a.xls和b.xls的格式如下:
a.xls
A               B            C                          D
证券代码        证券名称     2005年报事务所                2005年报审计意见
000001             深发展A          深圳鹏城会计师事务所        标准无保留意见
000002             万科A          毕马威华振会计师事务所        标准无保留意见
000004             *ST国农          深圳鹏城会计师事务所        标准无保留意见
000005             世纪星源     深圳鹏城会计师事务所        标准无保留意见

b.xls
证券代码        证券名称   2006年报事务所               2006年报审计意见
000001             深发展A        深圳鹏城会计师事务所            标准无保留意见
000002            万科A        毕马威华振会计师事务所      标准无保留意见
000004             *ST国农        深圳鹏城会计师事务所            标准无保留意见
000005             世纪星源   利安达信隆会计师事务所      标准无保留意见
要求:
C项中“会计师事务所”如果变化了,把对应的ABCD项都复制到新txt文件里面。
txt格式如下:
A   B   C    D   E   F
证券代码   证券名称   2005年报事务所   2005年报审计意见   2006年报事务所   2006年报审计意见
000005           世纪星源   深圳鹏城会计师事务所  标准无保留意见  利安达信隆会计师事务所  标准无保留意见
一下几个统一标示便于编写批处理

  Quote:
标准无保留意见记为0;带强调事项段的无保留意见记为1;无法表示意见记为2;保留意见记为3;否定意见记为4;未披露审计意见类型记为5;--记为6.

[ Last edited by loquat on 2010-4-10 at 16:40 ]
作者: Hanyeguxing     时间: 2010-4-10 20:09
将两个xls文件用excel 打开,复制有效内容到a.txt和b.txt中。
注意,批脚本中set "a=        "里出现的连续空格实际是一个制表符。
@echo off&setlocal enabledelayedexpansion
set "a=        "
for /f "tokens=1-4 delims=%a%" %%a in (a.txt) do set "%%a%%b=%%c"&set "%%a%%b_=%%d"
for /f "tokens=1-4 delims=%a%" %%a in (b.txt) do if not "!%%a%%b!"=="%%c" (set "b=%%a%a%%%b%a%!%%a%%b!%a%!%%a%%b_!%a%%%c%a%%%d"&set b=!b:标准无保留意见=0!&set b=!b:带强调事项段的无保留意见=1!&set b=!b:无法表示意见=2!&set b=!b:保留意见=3!&set b=!b:否定意见=4!&set b=!b:未披露审计意见类型=5!&set b=!b:--=6!&echo.!b!)>>寒夜孤星.txt
上一次的地址:http://www.cn-dos.net/forum/view ... hlight=%2Bloquat###

[ Last edited by Hanyeguxing on 2010-4-10 at 20:34 ]
作者: HAT     时间: 2010-4-10 20:45
BAT不适合操作xls文件,学学VBS吧。
作者: loquat     时间: 2010-4-10 20:55


  Quote:
Originally posted by Hanyeguxing at 2010-4-10 20:09:
将两个xls文件用excel 打开,复制有效内容到a.txt和b.txt中。
注意,批脚本中set "a=        "里出现的连续空格实际是一个制表符。
[code]@echo off&setloc ...

代码可能还需要加一个判断。原来的数据里“深圳鹏城会计师事务所”“深圳市鹏城会计师事务所有限公司”应该是同一家公司。
000007        ST达声        深圳鹏城会计师事务所        0        深圳市鹏城会计师事务所有限公司        0
作者: loquat     时间: 2010-4-10 21:00
“上海立信长江会计师事务所有限公司”和“立信会计师事务所有限公司”也应该是同一个公司。
作者: yishanju     时间: 2010-4-11 22:37


  Quote:
Originally posted by Hanyeguxing at 2010-4-10 20:09:
将两个xls文件用excel 打开,复制有效内容到a.txt和b.txt中。
注意,批脚本中set "a=        "里出现的连续空格实际是一个制表符。
[code]@echo off&setloc ...

另存为CSV更好一些。