[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吧,趋向傻瓜操作,毕竟是给一般不太会操作的组织用的:)

    

时间: 2024-11-03 00:28:17

[Demo]处理课表的相关文章

android源码大放送(实战开发必备),免费安卓demo源码,例子大全文件详细列表

免费安卓demo源码,例子大全文件详细列表 本列表源码永久免费下载地址:http://www.jiandaima.com/blog/android-demo 卷 yunpan 的文件夹 PATH 列表 卷序列号为 0000-73EC E:. │ jiandaima.com文件列表生成.bat │ 例子大全说明.txt │ 本例子永久更新地址~.url │ 目录列表2016.03.10更新.txt │ ├─前台界面 │ ├─3D标签云卡片热门 │ │ Android TagCloudView云标签

HttpClient + Jsoup模拟登录教务处并获取课表

1.概述 最近想做一个校园助手类的APP,由于第一次做,所以打算先把每个功能单独实现,防止乱了阵脚.利用教务处登录获取课表和成绩等是一个基本功能,所以以获取课表为例实现了这个功能.完整代码点这里,尝试了好几次的,所以写的比较乱. 2.涉及的关键知识 首先,明确获取课表的流程:其实,获取课表就是让手机模拟浏览器,给服务器传去账号.密码,然后服务器会返回cookies(不懂自行百度),利用cookie就可以穿梭自如了,比如查课表.但是,浏览器登录时,返回的html文件浏览器是会自动解析成网页展现在我

微信h5支付demo微信H5支付demo非微信浏览器支付demo微信wap支付

一.首先先确定H5支付权限已经申请!(需要微信h5支付demo的可以加 851 488 243 备注:h5支付) 二.开发流程 1.用户在商户侧完成下单,使用微信支付进行支付 2.由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB 3.统一下单接口返回支付相关参数给商户后台,如支付跳转url(参数名"mweb_url"),商户通过mweb_url调起微信支付中间页 4.中间页进行H5权限的校验,安全性检查(此处常见错误请见下文) 5.如支付成

Maven+SpringMVC+Freemarker入门Demo

1 参考http://blog.csdn.net/haishu_zheng/article/details/51490299,用第二种方法创建一个名为mavenspringmvcfreemarker的Maven工程. 2 文件目录结构如下图所示 3 在pom.xml中添加springmvc和freemarker的依赖包,添加完之后的完整内容为 [html] view plain copy <project xmlns="http://maven.apache.org/POM/4.0.0&q

Spring Security入门Demo

一.spring Security简介 SpringSecurity,这是一种基于Spring AOP和Servlet过滤器的安全框架.它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权.在Spring Framework基础上,Spring Security充分利用了依赖注入(DI,Dependency Injection)和面向切面技术. 二.建立工程 参考http://blog.csdn.net/haishu_zheng/article/details/51490

沫沫金Echarts移动端demo

鄙视百度!!! 官网给的Demo支持自动大小,确不给完整的源码XXX 自己动手,丰衣足食 http://echarts.baidu.com/demo.html#bar-tick-align 用最基本的柱状图官网代码 简单两步,实现移动端自适应大小 //1.下载Echarts <script src="dep/Echarts/echarts-all-3.js"></script> //2.chart容器宽度自适应 <!-- 为ECharts准备一个具备大小(

Flask---使用Bootstrap新建第一个demo

Flask---使用Bootstrap新建第一个demo 参考自http://www.jianshu.com/p/417bcbad82fb 还有<Flask web开发> 前端用到Bootstrap开源框架,Bootstrap是客户端框架,后台当然就是Flask了. 服务器需要做的只是提供引用了Bootstrap层叠样式表(CSS)和JS文件的html响应,并且在html.css和js代码中实例化需要的组件,这些操作的最理想的执行环境就是模板 关于模板的介绍及其实现原理:https://kb.

struts2和hibernate整合的小Demo

jar包下载地址 创建一个web项目. 导入jar包 配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="

移动端上传照片 预览+draw on Canvas demo(解决iOS等设备照片旋转90度的bug)

背景: 本人的一个移动端H5项目,需求如下: 手机相册选取或拍摄照片后在页面上预览 然后绘制在canvas画布上. 这里,我们先看一个demo(http://jsfiddle.net/q3011893/83qfqpk8/embedded/) 操作步骤: 1.点击选择文件,拍摄一张照片,此时"预览:"文字下会显示你刚才拍摄的照片: 2.再点击"draw on Canvas",该按钮下的画布会绘制你刚才拍摄的照片. 正常的结果: 正文: 让input file支持拍照+