小兴趣:用python生成excel格式座位表
脚本分两个文件:
1.生成二维随机列表:GenerateLocaltion.py 2.将列表导入excel文件:CreateExcel.py
先上GenerateLocaltion.py:
import random class Table(): localtion = [([1] * 9) for i in range(5)] room = [] def inIt(self): localtion = [([1] * 9) for i in range(5)] for i in range(5): localtion[i][0] = 0 #标志特殊位置 localtion[0][0] = 1 localtion[1][0] = 1 localtion[0][8] = 0 localtion[1][5] = 0 localtion[3] = [0] * 9 localtion[3][1] = 1 localtion[3][2] = 1 localtion[4][4] = 0 localtion[4][5] = 0 localtion[4] = [0] * 9 for i in range(5): localtion[4][i] = 1 self.localtion = localtion #生成随机列表 def generateRandomList(self): #去掉空位 nothing = [] nothing.append(1) nothing.append(13) nothing.append(32) nothing.append(31) nothing.append(30) nothing.append(29) nothing.append(28) nothing.append(27) nothing.append(35) nothing.append(36) nothing.append(37) nothing.append(38) nothing.append(44) self.room = [] i = 0 while len(self.room) < 31: m = int(random.random()*100 % 44 + 1) if m not in self.room and m not in nothing: self.room.append(m) i += 1 return self.room def generateLocal(self): #随机列表对座位赋值 for i in range(5): for j in range(9): if self.localtion[i][j] == 1: self.localtion[i][j] = self.room.pop(0) return self.localtion def getTable(self): self.inIt() self.generateRandomList() return self.generateLocal()
代码很长,主要因为要特殊照顾一些位置,思路就是生成一个足够个数的随机序列(不能重复,不能有对应空位的座位号)往二维列表里塞,其他的都很简单
CreateExcel.py:
用xlwt模块和easygui模块
xlwt中调用的函数:
sheet.write_merge()函数:参数1,2,3,4可以理解为用行和列描述一块区域,前两个为行,后两个为列例如,i,i+n,j,j+n,边长为n的正方形
sheet.write()函数:向单元格中填充内容,参数1,2表示单元格坐标,参数3表示填充的内容,参数4是单元格格式
''' Created on 2017年7月21日 @author: Garbos ''' #coding:utf-8 import xlwt import easygui as g from GenerateLocaltion import Table as table def setUnitStyle(name,height,bold=False): style = xlwt.XFStyle() font = xlwt.Font() font.name = name font.bold = bold font.color_index = 4 font.height = height style.font = font return style def createExcel(): #創建工作簿 e = xlwt.Workbook() #創建表格sheet1 sheet1 = e.add_sheet(u'sheet1',cell_overwrite_ok=True) #創建第一行 sheet1.write_merge(0,0,0,3,u'',setUnitStyle('Times New Roman',500,False)) sheet1.write_merge(0,0,3,10,u'ACM 404集训座位表',setUnitStyle('Times New Roman',500,False)) sheet1.write_merge(1,1,1,4,u'',setUnitStyle('Times New Roman',300,False)) sheet1.write_merge(1,1,6,10,u'',setUnitStyle('Times New Roman',300,False)) sheet1.write(1,5,u'讲台',setUnitStyle(u'微软雅黑',400,True)) sheet1.write_merge(3,5,5,6,u'走廊',setUnitStyle('Times New Roman',800,False)) sheet1.write_merge(2,2,5,6,u'',setUnitStyle('Times New Roman',300,False)) sheet1.write_merge(6,6,5,6,u'',setUnitStyle('Times New Roman',300,False)) sheet1.write(1,0,u'门',setUnitStyle(u'微软雅黑',400,False)) gt = table() t = gt.getTable() for i in range(5): for j in range(9): if t[i][j] == 0: continue temp = j if temp >= 5: temp += 2 sheet1.write(i+2,temp,t[i][j],setUnitStyle(u'微软雅黑',250,False)) filename = '404座位表.xls' e.save(filename)#坑,xlsx无法打开 remind = g.msgbox(msg = filename + ' 已生成!',title='404座位表生成器', ok_button = '取消') if __name__ =='__main__': createExcel()
最后用Pyinstaller打包
小兴趣:用python生成excel格式座位表的更多相关文章
- python生成excel格式座位表
脚本分两个文件: 1.生成二维随机列表:GenerateLocaltion.py 2.将列表导入excel文件:CreateExcel.py 先上GenerateLocaltion.py: impor ...
- Python生成文本格式的excel\xlwt生成文本格式的excel\Python设置excel单元格格式为文本\Python excel xlwt 文本格式
Python生成文本格式的excel\xlwt生成文本格式的excel\Python设置excel单元格格式为文本\Python excel xlwt 文本格式 解决: xlwt 中设置单元格样式主要 ...
- Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"\@"
Html Table用JS导出excel格式问题 我在网上找的JS把HTML Tabel导出成EXCEL.但是如果Table里的数字内容为0开的的导成Excel后会自动删除0,我想以text的格式写入 ...
- python生成Excel图表(通过xlsxwriter)
前面介绍了pandas的简单用法,pandas的数据可以通过matlab第三方包将数据生成报表,但是我想将报表生成在Excel中,这时候就可以借助xlsxwriter第三方包来生成图标 缺点:xl ...
- python 生成json格式文件,并存储到手机上
上代码 #!/usr/bin/env python # -*- encoding: utf-8 -*- import json import os import random "" ...
- python生成excel测试数据
在功能测试时,经常会测到excel文件导入导出的功能,导入与导出时,需要测试系统单次导入大批量数据时是否正常, 如果系统承受不起太大的数据导入,则需要开发限制单次导入的数量,以防止系统服务异常.大量的 ...
- web利用table表格生成excel格式问题
当我们把web页面上的table导成excel形式时,有时候我们的数据需要以特定的格式呈现出来,这时候我们就需要给指定的单元格添加一些样式规格信息. 文本:vnd.ms-excel.numberfor ...
- (一)python 格式化 excel 格式
需求: 客户通过 sftp 上传了一个 poc测试的 excel文件, 下到 云桌面 查看,发现一堆格式问题, 怎么办呢? 公司又不允许 吧文件下载到本地处理, 只能在 服务器上进行处理. 一堆的类型 ...
- python生成excel文件
2018-04-1919:04:25 测试代码如下: import openpyxl import datetime wb = openpyxl.Workbook() ws = wb.active w ...
随机推荐
- java实现Excel的导入、导出
一.Excel的导入 导入可采用两种方式,一种是JXL,另一种是POI,但前者不能读取高版本的Excel(07以上),后者更具兼容性.由于对两种方式都进行了尝试,就都贴出来分享(若有错误,请给予指正) ...
- JAVA基础——数组详解
学习JAVA中数组的使用 一.什么是数组? 问:编写代码保存 4 名学生的考试成绩. 答:简单啊,定义 4 个变量呗 问:那"计算全年级 400 名学生的考试成绩",肿么办 答: ...
- 短信发送接口被恶意访问的网络攻击事件(四)完结篇--搭建WAF清理战场
前言 短信发送接口被恶意访问的网络攻击事件(一)紧张的遭遇战险胜 短信发送接口被恶意访问的网络攻击事件(二)肉搏战-阻止恶意请求 短信发送接口被恶意访问的网络攻击事件(三)定位恶意IP的日志分析脚本 ...
- 序列、视图、索引(面试看这个就GO了)
oracle内置对象 序列.视图.索引 序列 create sequence aaa start with 1; 使用 视图 创建好之后 然后直接用 就OK了 有了视图可以代替子查询,使得sql简洁 ...
- 如何将md文件转换成带目录的html文件
配置环境node 去官网下一个node安装包,下一步下一步: 由于现在的node都自带npm,直接 npm install i5ting_toc 这样安装好了i5ting_toc这个包, 进入你实现准 ...
- javascript闭包的妙用——实现函数的重载
最近在看John Resig 与 Bear Bibeault的<JavaScript 忍者秘籍>.这本书处处提现了js的魔法(从我这个写强类型语言的人看来).js能够点石成金,处处体现着它 ...
- Python实现浏览器自动化操作
Python实现浏览器自动化操作 (2012-08-02 17:35:43) 转载▼ 最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用pamie,但是只是 ...
- orcle 索引的使用
2.4.3.1. 索引的概念 数据库中的索引与书籍中的索引类似,在一本书中,利用索引可以快速查找所需信息, 无须阅读整本书.在数据库中,索引使数据库程序无须对整个表进行扫描, 就可以在其中找到所需数据 ...
- C#内置函数 RunSql的使用
作用批量执行sql语句 表达式.RunSQL(SQLStatement,UseTransaction) 表达式.一个代表DoCmd对象的变量. 注释:sqlstatement参数的最大长度为 32,7 ...
- 使用joda-time工具类 计算时间相差多少 天,小时,分钟,秒
下面程序使用了两种方法计算两个时间相差 天,小时,分钟,秒 package jodotest; import java.text.ParseException; import java.text.Si ...