python 读写 excel

本文介绍了如何使用Python的xlrd和xlwt库进行Excel数据的读取和写入。通过示例代码展示了读取Excel文件、创建新工作表并写入数据的操作,同时提到了xlwt的行限制及解决方案。
摘要由CSDN通过智能技术生成

      帮朋友写一个excel数据处理脚本,顺便熟悉下python的excel操作


读取excel使用xlrd

下载地址:

http://pypi.python.org/pypi/xlrd

http://www.lexicon.net/sjmachin/xlrd.htm

使用例子:

import xlrd
    book = xlrd.open_workbook("myfile.xls")
    print "The number of worksheets is", book.nsheets
    print "Worksheet name(s):", book.sheet_names()
    sh = book.sheet_by_index(0)
    print sh.name, sh.nrows, sh.ncols
    print "Cell D30 is", sh.cell_value(rowx=29, colx=3)
    for rx in range(sh.nrows):
        print sh.row(rx)

写入excel使用xlwt,我使用的是xlwt-future-0.8.0,这个支持xlsx

下载地址:

http://pypi.python.org/pypi/xlwt-future

使用例子:

#write work book

outWorkbook = xlwt.Workbook(encoding = 'utf-8')

outsheet = outWorkbook.add_sheet('outcode')

outsheet.write(0, 0, label = 'Row 0, Column 0 Value')

outWorkbook.save('out_Workbook.xls')

需要注意的是:他的一个工作表sheet只能写入65535行,多了就不能写了,解决方法可以是,每65535行新建一个工作表sheet或者向后移动几列,

然后写入,他的列最大值为256,所以最多一个sheet文件可以写入:256 * 65535 个数据


以下附上我的代码例子:

#Auther: lancer

#Data: 2016-01

#Function: ProcessCode

#Version: 1.00


import os

import re

import shutil

import string


#read excel

import xlrd

#write excel

import xlwt


#col defines

Python有多个库可以读写Excel文件,其中比较常用的有: 1. openpyxl:一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。 2. xlrd/xlwt:用于读写Excel 97-2003 .xls文件的Python库。 3. pandas:pandas库可以读取和入多种文件格式,包括Excel文件。 下面分别介绍使用这三个库的方法: ### 1. 使用openpyxl 安装openpyxl库: ``` pip install openpyxl ``` 读取Excel文件: ```python from openpyxl import load_workbook # 打开Excel文件 wb = load_workbook(filename='example.xlsx', read_only=True) # 选择工作表 ws = wb['Sheet1'] # 读取单元格数据 cell_value = ws.cell(row=1, column=1).value print(cell_value) # 遍历行 for row in ws.iter_rows(min_row=1, max_col=3, max_row=2): for cell in row: print(cell.value) # 遍历列 for col in ws.iter_cols(min_row=1, max_col=3, max_row=2): for cell in col: print(cell.value) # 读取整个工作表的数据,返回一个嵌套列表 data = [] for row in ws.iter_rows(min_row=1): row_data = [] for cell in row: row_data.append(cell.value) data.append(row_data) print(data) ``` Excel文件: ```python from openpyxl import Workbook # 创建Excel文件 wb = Workbook() # 选择工作表 ws = wb.active # 入单元格数据 ws['A1'] = 'Hello' ws.cell(row=1, column=2, value='World') # 入多行数据 data = [['Name', 'Age', 'Gender'], ['Tom', 18, 'Male'], ['Lucy', 20, 'Female']] for row in data: ws.append(row) # 保存Excel文件 wb.save('example.xlsx') ``` ### 2. 使用xlrd/xlwt 安装xlrd和xlwt库: ``` pip install xlrd pip install xlwt ``` 读取Excel文件: ```python import xlrd # 打开Excel文件 wb = xlrd.open_workbook('example.xls') # 选择工作表 ws = wb.sheet_by_name('Sheet1') # 读取单元格数据 cell_value = ws.cell_value(0, 0) print(cell_value) # 遍历行 for row in range(ws.nrows): for col in range(ws.ncols): cell_value = ws.cell_value(row, col) print(cell_value) # 读取整个工作表的数据,返回一个嵌套列表 data = [] for row in range(ws.nrows): row_data = [] for col in range(ws.ncols): cell_value = ws.cell_value(row, col) row_data.append(cell_value) data.append(row_data) print(data) ``` Excel文件: ```python import xlwt # 创建Excel文件 wb = xlwt.Workbook() # 选择工作表 ws = wb.add_sheet('Sheet1') # 入单元格数据 ws.write(0, 0, 'Hello') ws.write(0, 1, 'World') # 入多行数据 data = [['Name', 'Age', 'Gender'], ['Tom', 18, 'Male'], ['Lucy', 20, 'Female']] for row, row_data in enumerate(data): for col, cell_value in enumerate(row_data): ws.write(row+1, col, cell_value) # 保存Excel文件 wb.save('example.xls') ``` ### 3. 使用pandas 安装pandas库: ``` pip install pandas ``` 读取Excel文件: ```python import pandas as pd # 读取Excel文件 df = pd.read_excel('example.xlsx', sheet_name='Sheet1') # 读取单元格数据 cell_value = df.iloc[0, 0] print(cell_value) # 遍历行 for index, row in df.iterrows(): print(row['Name'], row['Age'], row['Gender']) # 读取整个工作表的数据,返回一个DataFrame对象 data = df.values.tolist() print(data) ``` Excel文件: ```python import pandas as pd # 创建DataFrame对象 df = pd.DataFrame({'Name': ['Tom', 'Lucy'], 'Age': [18, 20], 'Gender': ['Male', 'Female']}) # Excel文件 df.to_excel('example.xlsx', sheet_name='Sheet1', index=False) ``` 以上是使用Python读写Excel的常用方法,可以根据实际需求选择不同的库和方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值