python 读写xlsm与txt

描述

有一个excel表格,格式是XXX.xlsm,表格中有很多子表sheet
使用python 来读取其中一个sheet的内容

以下的代码只是实现我的功能,如果想要其他的excel读写功能,可以去搜索openpyxl。openpyxl是一个开源项目,它是一个用于读取/写入Excel 2010文档(如xlsx 、xlsm 、xltx 、xltm文件 )的Python库

参考链接
https://www.jb51.net/article/205868.htm

代码

读取其中的某行某列

import openpyxl
workbook = openpyxl.load_workbook('1.xlsm') # 使用load_workbook()方法打开.xlsx文件
sheet = workbook['a'] # 子表sheet的名字为a
cell = sheet.cell(row=1, column=1).value # 读取指定的单元格数据
print(cell)

将其中的固定行固定列写成txt

import openpyxl
workbook = openpyxl.load_workbook('1.xlsm')
sheet = workbook['a']
Note = open('1.txt', mode='w')
for i in range(5, sheet.max_row+1):
    param = sheet.cell(row=i, column=1).value
    param_type = sheet.cell(row=i, column=5).value
    Note.write(str(param_type))
    Note.write('\t')
    Note.write(str(param))
    Note.write(';\n')

Note.close()

写txt

Note = open('image_timestamp.txt', mode='w')
with open('top_img_list.txt', 'r') as f:
    for line in f.readlines():
    	line = line.strip()
    	Note.writelines(line[84:105]+'\n')
    	print(line[84:105])
 
Note.close()
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、付费专栏及课程。

余额充值