[Demo]处理课表

  因为一些需求,需要对课表(.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吧,趋向傻瓜操作,毕竟是给一般不太会操作的组织用的:)

 

    

posted @ 2017-03-16 22:15  viLogy  阅读(243)  评论(2编辑  收藏  举报