因为一些需求,需要对课表(.xls)文件进行处理:获取课表中空课的时间并输出。如:张三周四下午第五节课没有课,就会输出“星期四下午有空”。由于课表文件是.xls文件,不能使用openxlsx,遂使用xlrd,xlwt。这只是对功能的简单实现,尚存在可以优化的地方,只是暂时记录,还会更新。有个法则叫做「快速上线试错」,嗯,:)
一.xlrd
1.Install
Mac/linux
将下载好的压缩包解压,cd到目录,python setup.py install 安装,可能需要sudo。
windows
同样解压安装包,cd到目录,python setup.py install 即可。可能需要安装pip,我是通过重装python来完成的 :)
2.Common methods and skills
import xlrd # xlrd can read the .xls file book = (xlrd.open_workbook("path")) # use "path" to Open the .xls file sh = book.sheet_by_index(0) # To the first sheet print sh.cell_value(8,6) # output the value of (9,7) cell
3.Demo
关于读取空课的代码我挂到Github上了,详见网址:https://github.com/kxw34567/PyXls/blob/master/PyXls-1.0.0.170314_alpha
我还加了个简单的输入功能
1 ipt = raw_input("Please input:") # Input,and handle 2 ipt = ‘‘.join(ipt.split()) 3 4 book = (xlrd.open_workbook(ipt)) # Open the .xls file
第一行是对文件路径“粗获取”,支持拖拽文件到终端。第二行,是对获取的路径处理。由于拖拽文件产生的路径会在末端多加一个空格,影响后面的操作,所以在这一步除掉末端空格。
二:xlwt
1.Install
与xlrd安装大同小异,而且这种包装多了,会有莫名的爽快感:)
2.Common methods and skills
xlwt使用还是比较爽快的,只是在中文编码上颇费周折,下面提供搜集资料后得到的解决方案
1 import xlwt 2 3 style = xlwt.XFStyle() #Settings of writting style 4 font = xlwt.Font() 5 font.name = ‘SimSun‘ #指定中文字体为宋体 6 style.font = font 7 8 wb = xlwt.Workbook(encoding=‘utf-8‘) #注意这个编码 9 ws = wb.add_sheet(‘汇总‘) 10 first_col = ws.col(0) #设置单元格宽度,以256为单位,15为变量 11 first_col.width = 256*15
这个可以完美解决我的中文编码问题,但是在Linux下拖拽文件到终端时会出现自动添加转义符号‘\‘的情况,影响打开,windows不存在。
三:Code
还是挂到了GitHub 上:https://github.com/kxw34567/PyXls/blob/master/PyXls-1.1.0.0315_alpha
四:Issues
毕竟是Alpha版,所以Demo比较粗糙,代码中还存在着一些没调用的声明,或者没被发现的bugs。
windows下用cxfreeze打包为.exe后,输出正常,只是最后总是save不了文件,问题正在排查。Linux下完美运行(其实我主Linux开发)
嗯,就酱,还会继续更新的,会上GUI吧,趋向傻瓜操作,毕竟是给一般不太会操作的组织用的:)