-
表格下划线怎么加粗_100行Python代码控制excel表格,用代码办公不是梦
2020-12-28 17:54:11xlrd模块xlrd是python中一个第三...安装xlrdpip install xlrdexlce结构分析一个excle表格包含多个sheet一个sheet中包含多行多列每个单元格具备唯一的行号和列号常用函数import xlrd# 读取文件work_book = xlrd.open...xlrd模块
xlrd是python中一个第三方的用于读取excle表格的模块,很多企业在没有使用计算机管理前大多使用表格来管理数据,所以导入表格还是非常常用的!
安装xlrd
pip install xlrd
exlce结构分析
一个excle表格包含多个sheet
一个sheet中包含多行多列
每个单元格具备唯一的行号和列号
常用函数
import xlrd# 读取文件work_book = xlrd.open_workbook("/Users/jerry/Desktop/公司机密数据.xlsx")# 选取一个表# 获取所有所有表格名称print(work_book.sheet_names())# 选择第2个 索引从0开始sheet = work_book.sheet_by_index(1)# 表格名称print(sheet.name)# 行数print(sheet.nrows)# 列数print(sheet.ncols)#批量读取行数据# 取出第6行的全部内容包含数据类型print(sheet.row(6))# 取出第6行的内容包含数据类型 从第3列开始获取print(sheet.row_slice(6,start_colx=3))# 取出第6行的内容包含数据类型 从第3列开始获取print(sheet.row_slice(6,start_colx=4,end_colx=5))# 获取该行所有数据类型 一数字表示# print(sheet.row_types(6))# print(sheet.row_values(6))# 单元格的处理print(sheet.cell(0,0).value) # 取值print(sheet.cell(0,0).ctype) # 取类型print(sheet.cell_value(2,0)) # 直接取值print(sheet.row(0)[0]) # 先取行再取单元格print(sheet.col(0)) # 第0列所有数据print(sheet.col(0)) # 先取列再取单元格print(sheet.cell_type(0,0))# 单元格位置转换print(xlrd.cellname(2,1))print(xlrd.cellnameabs(0,2))print(xlrd.colname(5))# 时间类型转换# print(sheet.cell(6,5).value)# print(xlrd.xldate_as_datetime(sheet.cell(6,5).value,1))
案例:
读取一个报价单 其第二个sheet包含合并单元格
文件地址: https://share.weiyun.com/5GaLY2m
import xlrdsheet = xlrd.open_workbook("报价单.xlsx").sheet_by_index(1)def get_text(row,col): # 判断该坐标是否是被合并的单元格 合并单元格的数据都在合并区域的第一个位置 for ces in sheet.merged_cells: if (row >= ces[0] and row < ces[1]) and (col >= ces[2] and col < ces[3]): return sheet.cell(ces[0],ces[2]).value # 取出合并区域的第一个数据 return sheet.cell(row,col).value #正常取出对应数据keys = sheet.row_values(1) # 获取所有的列标题data = []for row in range(2,sheet.nrows): dic = {} for col in range(sheet.ncols): k = keys[col] #确定key res = get_text(row,col) dic[k] = res # 确定值 并存储 data.append(dic)print(data)# 序列化为jsonimport jsonjson.dump(data,open("test.json","wt"),ensure_ascii=False)
xlwt模块
是python中一个第三方的用于写入excle数据到表格的模块
用代码来编写exlce是非常低效的 所以该模块了解即可。
import xlwt# 创建工作簿work = xlwt.Workbook()# 创建一个表sheet = work.add_sheet("员工信息数据")#创建一个字体对象font = xlwt.Font()font.name = "Times New Roman" # 字体名称font.bold = True # 加粗font.italic = True # 斜体font.underline = True # 下划线#创建一个样式对象style = xlwt.XFStyle()style.font = font# 写入标题for k in keys: sheet.write(0,keys.index(k),k,style)# 写入数据for i in infos: for k in keys: sheet.write(1 + infos.index(i),keys.index(k),label = i[k])# 保存至文件work.save("test.xls")
面试题:
import xlrdimport pymysql# 读取文件work_book = xlrd.open_workbook("/xxx/xxx.xlsx")# 选取一个表sheet = work_book.sheet_by_index(0)# 遍历表格数据datas = []for row in range(1,sheet.nrows): temp_list =[] for col in range(sheet.ncols): value = sheet.cell_value(row,col) temp_list.append(value) datas.append(temp_list)# 打开数据库连接db = pymysql.connect(host='localhost', port=3306, user='username', passwd='password', db='database_name', charset='utf8')# 使用cursor()方法获取操作游标cursor = db.cursor()# SQL 插入语句sql = "INSERT INTO SHOP(shop_code, shop_name, month) VALUES (%s,%s,%s)"try: # 执行sql语句 cursor.executemany(sql, datas) # 提交到数据库执行 db.commit()except : # 如果发生错误则回滚 db.rollback()# 关闭游标cursor.close()# 关闭数据库连接db.close()
-
C语言实现维吉尼亚密码加密解密
2020-09-23 09:58:12这一表格(如图1所示)包括了26行字母表,每一行都由前一行向左偏移一位得到。具体使用哪一行字母表进行编译是基于密钥进行的,在过程中会不断地变换。 例如,假设明文为: ATTACKATDAWN 选择某一关键词并重复而...为了生成密码,需要使用表格法。这一表格包括了26行字母表,每一行都由前一行向左偏移一位得到。具体使用哪一行字母表进行编译是基于密钥进行的,在过程中会不断地变换。
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <malloc.h> typedef struct Node { char data; Node* prior; Node* next; }*SLink; void init(SLink* l) { SLink t, q; *l = (SLink)malloc(sizeof(Node)); q = *l; q->data = 'A'; for (int i = 1; i < 26; i++) { t = (SLink)malloc(sizeof(Node)); t->data = 'A' + i; q->next = t; t->prior = q; q = t; } q->next = *l; (*l)->prior = q; } char encryption(char y,char m, SLink t) { while (t->data != m) { t = t->next; } int i = (int)y - 65; while (i--) { t = t->next; } return t->data; } char decrypt(char y, char m, SLink t) { char ts; while (t->data != m) { t = t->next; } ts = 'A'; while (t->data != y) { t = t->next; ts++; } return ts; } int main() { SLink l; int n = 0; char pri[100]; char key[100]; init(&l); while (true) { printf("选择解密还是加密(1为加密,其他为解密):"); scanf("%d",&n); if (n == 1) { printf("请输入明文:"); scanf("%s", &pri); printf("请输入秘钥:"); scanf("%s", &key); printf("密文为:"); for (int i = 0; pri[i]; i++) { printf("%c", encryption(pri[i],key[i],l)); } printf("\n"); } else { printf("请输入密文:"); scanf("%s", &pri); printf("请输入秘钥:"); scanf("%s", &key); printf("明文为:"); for (int i = 0; pri[i]; i++) { printf("%c", decrypt(pri[i], key[i], l)); } printf("\n"); } } return 0; }
-
JAVA实现维吉利亚密码加密解密
2019-12-09 01:53:24这一表格(如图1所示)包括了26行字母表,每一行都由前一行向左偏移一位得到。具体使用哪一行字母表进行编译是基于密钥进行的,在过程中会不断地变换。 例如,假设明文为: ATTACKATDAWN 选...维吉利亚密码
在一个凯撒密码中,字母表中的每一字母都会作一定的偏移,例如偏移量为3时,A就转换为了D、B转换为了E……而维吉尼亚密码则是由一些偏移量不同的恺撒密码组成。
为了生成密码,需要使用表格法。这一表格(如图1所示)包括了26行字母表,每一行都由前一行向左偏移一位得到。具体使用哪一行字母表进行编译是基于密钥进行的,在过程中会不断地变换。
例如,假设明文为:
ATTACKATDAWN
选择某一关键词并重复而得到密钥,如关键词为LEMON时,密钥为:
LEMONLEMONLE
对于明文的第一个字母A,对应密钥的第一个字母L,于是使用表格中L行字母表进行加密,得到密文第一个字母L。类似地,明文第二个字母为T,在表格中使用对应的E行进行加密,得到密文第二个字母X。以此类推,可以得到:
明文:ATTACKATDAWN密钥:LEMONLEMONLE密文:LXFOPVEFRNHR
解密的过程则与加密相反。例如:根据密钥第一个字母L所对应的L行字母表,发现密文第一个字母L位于A列,因而明文第一个字母为A。密钥第二个字母E对应E行字母表,而密文第二个字母X位于此行T列,因而明文第二个字母为T。以此类推便可得到明文。
用数字0-25代替字母A-Z,维吉尼亚密码的加密文法可以写成同余的形式:
解密方法则能写成:
---------------------------------来自百度------------------------------------------package cryptology; import java.util.Scanner; public class vigenere { public static void main(String []args) { int stop=1; System.out.println("*******************************Vigenere**********************************"); System.out.println(" Vigenere密码加解密 "); System.out.println("加密:0"); System.out.println("解密:1"); System.out.println("*******************************Vigenere**********************************"); while(stop==1) { String text; String key; int[]mediume=new int [100000]; int base=97; int M; System.out.println("Please select 加密 or 解密:"); int select; Scanner input0=new Scanner(System.in); select=input0.nextInt(); System.out.println("Please input your text:"); Scanner input=new Scanner(System.in); text=input.nextLine(); System.out.println("Please input your key:"); Scanner input1=new Scanner(System.in); key=input1.nextLine(); if(text.charAt(0)<97) base=65; if(select==0) M=encrypt(text,key,mediume,base); else M=decode(text,key,mediume,base); System.out.println("Please select daxiezimu or xiaoxiezimu ,press(0/1):"); Scanner input2=new Scanner(System.in); select=input2.nextInt(); if(select==0) base=65; else base=97; for(int j=0;j<M;j++) { char A=(char) ((char)mediume[j]+base); System.out.print(A); } System.out.println("\npress 1 to continue,press 0 to stop:"); Scanner input4=new Scanner(System.in); stop=input4.nextInt(); } } public static int encrypt(String text,String key,int []medium,int base) { int k=0;int keypoint=0; for(int i=0;i<text.length();i++) { if(text.charAt(i)==' ') continue; keypoint=k%key.length(); medium[k++]=(text.charAt(i)-base+key.charAt(keypoint)-97)%26; } return k; } public static int decode(String text,String key,int []medium,int base) { int k=0;int keypoint=0; for(int i=0;i<text.length();i++) { if(text.charAt(i)==' ') continue; keypoint=k%key.length(); medium[k++]=(text.charAt(i)-base-key.charAt(keypoint)+97+26)%26; } return k; } }
-
markdown的使用
2020-10-27 16:27:09*一级标题 在标题前加几个星号就代表几级标题 ...列与列之间用符号“|”隔开,表格每一行的两边也要有符号“|”。 数学公式编辑:LaTeX 是写科研论文的必备工具, Markdown 单元中也可以使用 LaTeX 来插入数学公式*一级标题
在标题前加几个星号就代表几级标题
加粗
》要加粗的文字左右分别用两个号包起来
斜体
》要倾斜的文字左右分别用一个号包起来
斜体加粗
》要倾斜和加粗的文字左右分别用三个号包起来
*删除线
》要加删除线的文字左右分别用两个~~号包起来表格:代码的第一行表示表头,第二行分隔表头和主体部分,从第三行开始,每一行代表一个表格行;列与列之间用符号“|”隔开,表格每一行的两边也要有符号“|”。
数学公式编辑: Markdown 单元中也可以使用 LaTeX 来插入数学公式。
在文本行中插入数学公式,应在公式前后分别加上一个“$”符号。 -
用python 10min手写一个简易的实时内存监控系统
2020-12-31 19:55:36我们关注的是前四行,总内存,空闲内存,缓冲和缓存大小 计算内存占用量公式: (总内存-空闲内存-缓冲-缓存)/1024Mb 代码呼之欲出 monitor.py 用with打开文件,可以自动关闭... -
PLSQL Developer 8.0.3.1510 简体中文绿色破解版
2010-07-15 16:36:07性能优化——使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。 更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该... -
有关jquery的一些东西
2018-12-04 10:41:35需求:后台拿到数据,前台datagrid呈现,每条数据前加复选框,表格最下面一行增加合计,点击选中一条数据就进行合计操作。 我的想法:本来准备在画好表格以后,再在页面上加一行,后来发现datagrid有<tfoot&... -
C#开发实战1200例(第一卷+第二卷)+源码下载地址.txt
2019-05-17 09:24:24实例203 隐藏应用程序在任务栏中的图标 272 实例204 实现动态系统托盘图标 272 实例205 实现气泡提示窗口 275 实例206 从桌面右下角显示的Popup窗口提醒 276 实例207 设置可执行文件的生成图标 278 ... -
excel的使用
2012-11-25 17:06:01(7) 在单元格中显示公式如果工作表中的数据多数是由公式生成的,想要快速知道每个单元格中的公式形式,以便编辑修改,可以这样做:用鼠标左键单击“工具”菜单,选取“选项”命令,出现“选项”对话框,单击“视图... -
Excel公式大全操作应用实例(史上最全)
2018-03-06 21:09:38一个大表每一行下面需要加一行空行,怎么加最方便 Excel中插入空白行 快速删除工作表中的空行快速删除空行一次删完Excel里面多出很多的空白行 每30行为一页并加上一个标题如何实现如何实现隔行都加上标题项 如何把... -
9.3.5 幻方 (20分)
2020-06-11 22:43:22在《射雕英雄传》中郭黄二人被裘千仞追到黑龙潭,躲进瑛姑的小屋。...每一个数存放的行比前一个数的行数减1,列数加1。 3)如果行列范围超出矩阵范围,则回绕,例如1在第1行,则2应放在最后一行,列数同样加1。 -
Word精灵插件 - Word增强辅助软件,批量删除空行、替换等等
2018-04-02 08:40:16在表格中时支持批量转换。 小数转百分比 将带有小数的值转换成百分比形式,支持批量转换。 计算表达式 将表达式转换成计算结果,支持批量转换。 千分位分隔符 对整数大于3位的数值批量添加千分位分隔符。段落中的值... -
EXCEL函数公式集
2010-03-16 03:26:38一个大表每一行下面需要加一行空行,怎么加最方便 Excel中插入空白行 快速删除工作表中的空行快速删除空行一次删完Excel里面多出很多的空白行 每30行为一页并加上一个标题如何实现如何实现隔行都加上标题项 如何把... -
wps2000最经典的办公软件+注册码
2013-08-19 01:54:29可以在表格内自由画线和擦线,加入表题和表体,表体内可以灌入各种数据库数据,表格可自动填充数据,表格数据可以生成直观醒目的图表,如折线图或圆饼图。表内数据计算有 10多种运算公式,您甚至可以用自定义算式... -
我整理的VBA 自定义函数大全 共138页
2008-11-21 16:14:03131.删除表格中使用范围内的所有空白单元格 132.返回数组中有多少个指定的字符串 133.返回当前工作表中引用了指定的单元的地址 134.获取Excel中字型列表 135.获取一个字符串中有多少个数字字符 136.在Excel中对多列... -
Excel新增工具集
2011-12-20 09:30:274、工资条(成绩条)群发到个人文件夹:现在许多单位的个人信息都存放在服务器中由职工通过FTP查看,本软件能将同一个工作表中的每行记录(工资条)另存为同名的个人文件夹中,并统一改名。例如:存到[独立]文件夹中... -
LINGO软件的学习
2009-08-08 22:36:50雇员集中的每位雇员可以有一个薪水属性,也可以有一个生日属性等等。 LINGO有两种类型的集:原始集(primitive set)和派生集(derived set)。 一个原始集是由一些最基本的对象组成的。 一个派生集是用一个或多个其它... -
excel中161个VBA_自定义函数超级实用
2018-03-28 08:36:32函数作用:从右边开始查找指定字符在字符串中的位置...43 '15.函数作用:从右边开始查找指定字符在字符串中的位置...44 '16.函数作用:计算工龄.................................44 '17.函数作用:计算日期差,除去星期... -
PLSQL Developer(免安装、汉化版,很好用的) 8.0.3.1510.rar
2012-01-25 22:56:29性能优化——使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。 更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该... -
电大2013年秋)计算机应用基础形成性考核册题目及答案
2013-05-14 11:59:42执行下列编辑操作:在表格中的最后一列前插入一列,并以表中原有内容的字体、字号和格式添加下列内容:四季度、19、、18、20,并将总计一列的数值作相应的调整,添加完成后将表格外框线改为1/2磅单实线,内框线改为3... -
Linux操作系统基础教程
2013-04-08 21:34:26在这一讲中,我们主要是了解一下 Linux 的概况,以及对 Linux 有一个初步的感性认识。 一.什么是Linux? Linux 是一个以 Intel 系列 CPU(CYRIX,AMD 的 CPU也可以)为硬件平台,完全免费的 UNIX 兼容系统,完全... -
其实前面介绍图片显示、图片链接的时候为了清晰就是放在在表格中显示的。 图片 描述 百度 表情 Github的Markdown语法支持添加emoji表情,输入不同的符号码(两个冒号包围的字符)可以显示出不同的表情。...
-
其实前面介绍图片显示、图片链接的时候为了清晰就是放在在表格中显示的。 图片 描述 百度 表情 Github的Markdown语法支持添加emoji表情,输入不同的符号码(两个冒号包围的字符)可以显示出不同的表情。...
-
硕士生,博士生论文排版技巧方法
2009-05-03 16:37:22表格编号的作法与图相同,唯一不同的是表格的题注在表格上方,且要求左对齐。 公式的编号略有不同,插入公式后,将公式单独放在一个段落,版式为“嵌入式”(Word默认),光标放在公式之后,不要(注意是“不要”... -
《Java Web开发实战1200例(第I卷)》(清华出版.卢瀚.王春斌).part2 高清完整PDF版
2016-06-13 12:06:47实例303 将某文件夹中的文件进行分类存储 实例304 在指定目录下搜索文件 实例305 网络文件夹备份 12.2 文件的压缩与解压缩 实例306 压缩所有文本文件 实例307 压缩包解压到指定文件夹 实例308 压缩所有子... -
javascript函数的解释
2011-02-26 11:03:5284.JS中的模态显示在IE4+行,在NN中不行:showModalDialog("URL"[,arguments][,features]); 85.JS中的退出之前使用的句柄:function verifyClose(){event.returnValue= "we really like you and hope you will stay ... -
word使用技巧大全
2011-03-18 20:37:534.用标题1,2,3分别去定义文中的每一章节 4 四、如何自动生成目录? 6 五、奇偶页显示不同内容 7 六、在页眉中显示章编号及章标题内容 7 七、修改页眉中的划线格式 7 八、在页眉和页脚中插入章节号和标题 8 九、... -
Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--详细书签版
2013-02-04 12:43:52他认为对于SQL的学习是永无止境的,相信每一个查询Oracle数据库的人都需要精通SQL语言,才能写出高效的查询。他参与本书的编写就是为了帮助别人实现这一目标。 目录 封面 -11 封底 -10 扉页 -9 版权 -8 版权声明 -7... -
Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码
2013-02-04 12:49:33他认为对于SQL的学习是永无止境的,相信每一个查询Oracle数据库的人都需要精通SQL语言,才能写出高效的查询。他参与本书的编写就是为了帮助别人实现这一目标。 目录 封面 -11 封底 -10 扉页 -9 版权 -8 版权声明 -7... -
超漂亮的网上购物系统 2012 v1.0 正式版
2012-08-17 23:18:39每个商品最多加五个配件(在2008之前版本此功能名称为“套装”) 14)商品页面的搜索引擎优化 15)商品评论功能:客户可以发表针对具体商品的评论或提问,管理员可以回复 管理员可以设置客户发表评论后直接显示在...