import xlrd as xl
data = xl.open_workbook("hypothetical data 0.xls")
现在我们已经导入了xls表格里的数据(注意,xlrd版本更新之后只能处理xls后缀的文件)
现在针对工作表做读取操作
- 获取工作表的信息
- 工作簿中工作表的数量
-
work_sheets = data.nsheets
- 列表形式下的所有表的名字字符串
-
work_names = data.sheet_names()
- 获取具体工作表 三种方式
-
sheet_index = 1 work_sheet = data.sheets()[sheet_index] work_sheet = data.sheet_by_index(sheet_index) sheet_name = "Sheet2" work_sheet = data.sheet_by_name(sheet_name)
- 检查是否导入工作表
-
#检查是否导入工作表 check = data.sheet_loaded(sheet_name) check = data.sheet_loaded(sheet_index)
- 现在我们需要从一个工作表中获取数据
- 这里还给出了单元格的数据类型
- 如果没有带上_values的话。会得到一个字典
- 获取工作表名称
sheet_name = work_sheet.name
- 获取工作表中的有效行数 / 列col
all_rows = work_sheet.nrows
- 获取指定行所有单元格对象组成的列表
row_object = work_sheet.row(5)
row_object2 = work_sheet.row_values(5)
- 单元格的数据类型
#0:empty
#1:text
#2:number
#3:date
#4:boolean
#5:error
row_type = work_sheet.row_types(5)
- 指定行有效单元格的长度
row_length = work_sheet.row_len(5)
- 获取工作表所有行的生成器
rows_generator = work_sheet.get_rows()
- 获得指定单元格的内容
#获得指定单元格的内容
rowx,colx = 1,1
cell_object = work_sheet.cell(rowx,colx)
cell_value = work_sheet.cell_value(rowx,colx)
cell_value2 = cell_object.value
- 接下来是读取日期:
#读取日期
#excel中的日期是相对于基准时间 1900-01-01 为起点(1)的天数数值
#Python中的日期一般也已它为基准
col_content = work_sheet.col_values(4)
col_type = work_sheet.col_types(4)
#0表示1900-01-01 1表示1904-01-01
date_cell = xl.xldate_as_tuple(work_sheet.cell_value(4,4),0)
date_cell = xl.xldate_as_datetime(work_sheet.cell_value(4,4),0)
-
如果要写入文件的话:
import xlsxwriter as xls
- 创建工作簿
workbook = xls.Workbook("new_excel.xlsx")
- 创建工作表
worksheet = workbook.add_worksheet("sheet1")
- 写入数据
headings = ["Number","testA","testB"]
data = [[1,1,1],
[2,2,2],
[3,4,5],
[5,6,7]]
worksheet.write_row("A1",headings)
worksheet.write_column("A2",data[0])
worksheet.write_column("B2",data[1])
worksheet.write_column("C2",data[2])
- 设置单元格的格式
workfomat = workbook.add_format()
workfomat.set_bold(1) #设置边框宽度为1
workfomat.set_num_format("0.00") #格式化数据为小数点后两位
workfomat.set_align("center") #对齐方式
workfomat.set_fg_color("blue") #设置背景颜色
- 合并单元格
worksheet.merge_range("D1:D7","需要写在单元格里的东西")
- 改变单元格宽度
worksheet.set_column("D:E",30)
- 插入图片
worksheet.insert_image("E1","绝对路径")
其实 在excel表的操作中,读取从来不是最困难的问题
在用Python解决问题的过程中,最困难的是运算能力和运算速度的问题
运算速度是解决实际问题的最困难的一点
faker库
faker库伪造信息
- 导入包并将环境设置为中国并设置随机数种子
from faker import Faker
Faker.seed(0)
faker1 = Faker(locale="zh_CN")
"zh_CN" 是语言国家代码。列出一些国家和地区
zh_tw | 我国台湾地区 | en_hk | 我国香港地区 |
en_us | 美国 | en_gb | 英国 |
ko_kr | 韩国 | fr_fr | 法国 |
ja_JP | 日本 |
- 姓名
>>> faker1.name()
'徐欢'
- 电话号码
>>> faker1.phone_number()
'13214950068'
- 邮箱
>>> faker1.email()
'baijuan@example.net'
- 地址
>>> faker1.address()
'台湾省秀梅县秀英徐街o座 780106'
- 公司
>>> faker1.company()
'通际名联信息有限公司'
- 一套人员档案
>>> faker1.profile()
{'job': '房产项目配套工程师', 'company': '雨林木风计算机网络有限公司', 'ssn': '652826199405269712', 'residence': '香港特别行政区飞市浔阳齐街X座 860136', 'current_location': (Decimal('-66.7915655'), Decimal('110.508244')), 'blood_group': 'A-', 'website': ['https://www.juanxiang.net/', 'https://www.wangfan.cn/', 'http://www.jingfang.cn/'], 'username': 'xiulanchen', 'name': '徐帅', 'sex': 'F', 'address': '福建省汕尾县花溪阜新路y座 685413', 'mail': 'ima@hotmail.com', 'birthdate': datetime.date(1960, 11, 30)}
- text方法
>>> faker1.text()
'最大大学当前详细技术深圳是一.已经以下全部我们然后学习.\n首页您的城市有些计划介绍这么控制.建设解决类型大学设备评论只是.现在那些发展控制.\n计划作为类型无法类别.简介全部搜索的人提供这是新闻网站.结果发现关系.\n已经一点的是地方.状态标准提供今年.\n其中无法来源具有.她的关于提供帖子方面.\n有些工具计划相关影响责任质量.能力两个记者留言今年.比较方法分析.'
官网
Welcome to Faker’s documentation! — Faker 15.0.0 documentation