本文共 2736 字,大约阅读时间需要 9 分钟。
优化后的文本(去掉不相关内容,语言更自然):
Python操作Excel文档详细教程
使用
xlrd
库读取、处理及写入Excel文件的示例代码
###引言
Excel 操作是日常办公中常用的任务之一,而 Python 的 xlrd
库为我们提供了对 Excel 文件进行读写操作的强大功能。本文将详细介绍如何使用 xlrd
来读取和写入 Excel 文件,并提供实用的代码示例。
xlrd
库(前提)确保你的 Python 环境中已安装 xlrd
库。可以通过以下代码检查是否安装:
import xlrdprint(xlrd.__version__)
打开指定路径的 Excel 文件:
import xlrdimport os# 设置文件路径file = os.path.join(os.getcwd(), "abc.xlsx")# 打开Excel文件workbook = xlrd.open_workbook(file)
使用 sheet_by_name
和 sheet_by_index
方法获取特定工作表:
# 获取所有工作表名称sheet_names = workbook.sheet_names()# 获取第一个工作表sheet = workbook.sheets()[0]# 或者通过名称获取sheet = workbook.sheet_by_name("娃哈哈")
# 获取表头行数据title_row = sheet.row(0)# 打印表头值print(title_row[0].value)print(title_row[1].value)
# 用循环读取所有行数据nrows = sheet.nrowsfor i in range(1, nrows): data_row = sheet.row(i) # 创建字典存储数据 my_dict = {} for j in range(len(data_row)): cell = data_row[j] # 时间格式处理 if cell.ctype == 3: date_value = xlrd.xldate_as_tuple(cell.value) formatted_date = datetime(*date_value).strftime("%Y-%m-%d") my_dict[cell.value] = formatted_date elif cell.ctype == 2: my_dict[cell.value] = int(cell.value) else: my_dict[cell.value] = cell.value lst.append(my_dict)
# 举例:读取第二行第三列single_value = sheet.cell(1, 2)print(single_value.value)
# 判断单元格类型cell_type = sheet.cell_type(1,2)print(cell_type)
import xlwt# 创建工作簿workbook = xlwt.Workbook()# 创建新的工作表sheet = workbook.add_sheet("您好")
# 写入表头sheet.write(0, 0, "id")sheet.write(0, 1, "name")sheet.write(0, 2, "date")
# 假设 `lst` 中存储了字典数据for i, dic in enumerate(lst): row = i + 1 for j, (key, value) in enumerate(dic.items()): sheet.write(row, j, value)
# 保存文件workbook.save("11.xls")
# 例如,A1 对应 `xlrd.B čeคล名("A1")`cell_name = xlrd.cellname(0, 0)print(cell_name)
def read_cell(table, row, col): value = table.cell_value(row, col) cell_type = table.cell_type(row, col) if cell_type == 0: return "'memo" elif cell_type == 1: return value elif cell_type == 2: return int(value) if value % 1 == 0 else float(value) elif cell_type == 3: date_value = xlrd.xldate_as_tuple(value) return datetime(*date_value).strftime("%Y-%m-%d") elif cell_type == 4: return True if value == 1 else False return value
# 使用函数读取特定单元格table = workbook.sheet_by_name("娃哈哈")print(read_cell(table, 1, 0)) # 第2行第1列print(read_cell(table, 0, 1)) # 第1行第2列
通过 xlrd
库,读取和写入 Excel 文件实现起来相对简单。通过了解不同单元格类型,合理处理数据格式,我们可以更高效地完成数据处理和分析任务。无论是日常办公工具还是自动化脚本,掌握这些技巧都能为你节省大量时间。
转载地址:http://bzyzk.baihongyu.com/