excel相关函数

"""
xlrd 读取excel表格数据
xlwt 写入数据到excel表格中

"""
import xlrd
# 读取文件 得到一个工作簿对象
work_book = xlrd.open_workbook("公司机密数据.xlsx")

# 从工作簿中得到一个表
sheet = work_book.sheet_by_index(1)

# print(sheet.row(0)) # 获取第一行的所有数据
# print(sheet.row_len(0)) # 获取第一行有几个单元格
# print(sheet.row_slice(1)) #获取第2行的所有数据
# print(sheet.row_slice(1,2,4)) #获取第2行的 索引为2-4的 不包含4

# 第一个是行索引   第二个是开始列索引 第三个是结束的列索引
# print(sheet.row_types(2,5,6)) # 获取某些单元格的数据类型
# print(sheet.row_types(6,0,4)) # 获取某些单元格的数据类型

# print(sheet.row_values(6,0,4)) # 获取某些单元格的数据值

# print(sheet.nrows) #行数
# print(sheet.ncols) #列数
# print(sheet.name) # 表格名字

# cell 单元格的处理
# print(sheet.cell_type(2,0)) #直接获取类型
# print(sheet.cell(2,0).ctype) # 获取单元格对象
#
# print(sheet.cell_value(2,0)) # 直接取出值
# print(sheet.cell(2,0).value) # 获取单元格对象并获取数据


#
# print(sheet.col_slice(0,3,5)) # # 切片得到的是 一个列表 里面放的单元格
# print(sheet.col_slice(0,3,5)[0]) # 取出第零个单元格
# print(sheet.col_slice(0,3,5)[0].value) #取出第零个单元格 的值
# print(sheet.col_slice(0,3,5)[0].ctype) #取出第零个单元格 的类型
#
# print(sheet.col_types())# 取出一堆类型
# print(sheet.col_values())# 取出一堆数据

# 有几行就循环几次
# for i in  range(sheet.nrows):
    # 通过索引拿到每一行
    # print(sheet.row_slice(i))
    # for cell in sheet.row_slice(i):
    #     # 在每一行中取出每一个单元格
    #     print(cell.value)
    #     print(cell.ctype)


# 将这个表格的数据转成字典类型
# 1.先拿到所有的key
keys = [cell.value for cell in  sheet.row_slice(1)]
print(keys)

persons = []

for i in range(2,sheet.nrows):
    # 有几次循环就有几个人员信息
    # 建立一个新字典
    dic = {}
    rows = sheet.row_slice(i)
    key_index = 0
    for cell in rows:
        if key_index == 3: #说明是日期 需要转换
            dic[keys[key_index]] = str(xlrd.xldate_as_datetime(cell.value,1))
        else:
            dic[keys[key_index]] = cell.value
        key_index += 1
    persons.append(dic)

import xlwt
# 创建工作簿
work = xlwt.Workbook()
# 创建一个表
sheet = work.add_sheet("员工信息数据")

# 写入标题
for k in keys:
    # 行索引  列索引 第三个是要写入的数据
    sheet.write(0,keys.index(k),k)

# 写入数据
for i in persons:
    for k in keys:
        sheet.write(1 + persons.index(i),keys.index(k),label = i[k])
# 保存至文件
work.save("test.xls")


 

猜你喜欢

转载自blog.csdn.net/qq_36811322/article/details/86744553