# -*- coding: UTF-8 -*-
import openpyxl
# openpyxl中列和行的起始标识都是1,不是从0开始
#
# 从excel中读取出来的数据只有两种类型,即数值类型和字符串类型
#
# 不要随便在表格中敲空格,会影响判断最大行数和最大列数
#
# 运行操作excel的代码时,要先关闭在操作系统中打开的相关excel表,否则可能会无法读取/写入数据
#
# 写入数据时要执行保存
def create_table():
# 创建一个工作簿
workbook = openpyxl.Workbook()
# 创建一个表单
sheet = workbook.create_sheet('sheet')
# 写入一个数据
sheet.cell(row=1, column=1, value="python")
# 保存
workbook.save('test1.xlsx')
def load_table():
# 打开工作簿
workbook = openpyxl.load_workbook(u"Book.xlsx")
# 获取表单
sheet_name = workbook['Sheet1']
# 读取指定的单元格数据
cell_value = sheet_name.cell(row=1, column=2).value
#学号
print(cell_value)
#读取A6单元格的值
cell_A6 = sheet_name['A6'].value
print(cell_A6)
#读取第3行, 第4列单元格的值
cell_3_4 = sheet_name.cell(row=3, column=4).value
print(cell_3_4)
#往单元格写入数据
cell_3_5 = sheet_name.cell(row=3, column=5, value='testsdfsdfsdf')
print(sheet_name.cell(row=3, column=5).value)
#获取表单数据的总行数
print(sheet_name.max_row)
#获取表单数据的总列数
print(sheet_name.max_column)
#获取按行所有的数据
rows_data = sheet_name.rows
#print(list(rows_data))
for row in list(rows_data):
case = []
for i in row:
#使用eval(数据) 将str类型转换为他原来的类型
case.append("%s" % i.value)
print(case)
#获取按列所有的数据,# 按列读取所有数据,每一列的单元格放入一个元组中
## 直接打印,打印结果是一个可迭代对象,我们可以转换成列表来查看
columns_data = sheet_name.columns
print(list(columns_data))
workbook.close()
#load_table()
def test_write():
book = openpyxl.load_workbook(u'Book.xlsx')
sheet = book['Sheet1']
sheet.cell(6, 1).value = 'name'
sheet.cell(7, 1).value = '姓名'
sheet.cell(8, 1).value = '林新发'
sheet.cell(9, 1).value = '林li'
book.save(u'Book.xlsx')
book.close()
#test_write()
def write_table():
# 打开工作簿
workbook1 = openpyxl.load_workbook(u"Book.xlsx")
# 获取表单
sheet_name = workbook1['Sheet1']
# 写入一个数据
sheet_name.cell(5, 5).value = '和平'
sheet_name.cell(6, 5).value = '众生'
sheet_name.cell(7, 5).value = '不同'
# 保存
workbook1.save(u"Book.xlsx")
workbook1.close()
write_table()
def test_1():
book = openpyxl.load_workbook(u'我的表格.xlsx')
if None != book[u'我的Sheet']:
print('我的Sheet 存在')
book.close()
def test_2():
book = openpyxl.load_workbook(u'我的表格.xlsx')
sheet = book.create_sheet('我的Sheet')
book.save(u'我的表格.xlsx')
book.close()
#遍历所有表名
def test_3():
book = openpyxl.load_workbook(u'我的表格.xlsx')
for sheet_name in book.sheetnames:
print(sheet_name)
book.close()