Python Openpyxl教程:从读写单元格到创建工作簿详解

6 下载量 107 浏览量 更新于2024-08-28 收藏 68KB PDF 举报
openpyxl 是一个Python库,用于读写Excel 2007及更高版本的.xlsx文件,它在处理现代Excel格式方面非常高效。其主要特点是支持.xlsx文件,与.xls格式相比更易于操作,并且特别强调文本编码问题,尤其是当遇到"gb2312"编码的文件时,需要确保转换为Unicode以避免乱码。 在openpyxl中,单元格的地址引用是以1为下标的,这意味着(1,1)是左上角的A1单元格,而不是传统Excel的(0,0)。因此,当使用`ws.cell()`方法读写单元格时,如果提供小于1的行或列索引,会抛出ValueError异常,提示"Row or column values must be at least 1"。这在编写代码时需要注意,以确保正确定位到单元格。 例如,当你维护表头时,可以像这样操作: ```python tableTitle = ['userName', 'Phone', 'age', 'Remark'] for col in range(len(tableTitle)): c = col + 1 ws.cell(row=1, column=c).value = tableTitle[col] ``` openpyxl库允许直接通过坐标和字母组合访问单元格,例如`ws['A4'] = 4`。这使得对数据的快速定位和赋值变得非常直观。 在实际操作Excel文件时,openpyxl主要涉及三个核心对象:Workbook(工作簿)、Sheet(工作表)和Cell(单元格)。工作簿是一个Excel文件的容器,包含多个工作表;工作表是单个表格,可以通过名称进行识别;而单元格则是存储数据的基本单元。 创建新工作簿时,至少需要一个Worksheet,可以通过`Workbook`类的`create_sheet()`方法添加更多。默认情况下,`Workbook.active`会返回第一个工作表,但可以通过手动设置或使用特定名称来指定其他工作表。例如: ```python wb = Workbook(encoding='UTF-8') ws = wb.active # 或者插入新的工作表 ws_new = wb.create_sheet("Mysheet", index=1) # 插入到第二个位置 ``` openpyxl为Python提供了强大的工具,支持高效地操作Excel文件,无论是读取数据、更新内容还是管理工作簿结构,都需要理解和掌握这些基本的对象和方法。在处理Excel文件时,正确处理编码问题以及理解单元格索引的约定是非常关键的。