python读写excel我比较喜欢使用pandas工具,实在太方便了,这里首先介绍下pd.read_excel参数
import pandas as pd
pd.read_excel(io,sheetname=0,usecols=None,header=0,skiprows=None,skipfooter=None,index_col=None,names=None,parse_date=False,na_values=None,thousands=None,convert_float=True)
io:指定电子表格的具体路径
sheetname:指定需要读取电子表格中的第几个sheet,既可以传递整数也可以传递具体的sheet名称
header:是否需要将数据集的第一行用作表头,默认为是需要的
skiprows:读取数据时,指定跳过的开始行数
skipfooter:读取数据时,指定跳过的末尾行数
usecols:指定需要解析的字段
index_col:指定哪些列用作数据框的行索引(标签)
names:如果原数据集中没有字段,可以通过该参数在数据读取时给数据框添加具体的表头 #如: [‘Prod_Id’,‘Prod_Name’,‘Prod_Color’,‘Prod_Price’] 通过列表的 形式
parse_dates:如果参数值为True,则尝试解析数据框的行索引;如果参数为列表,则尝试解析对应的日期列;如果参数为嵌套列表,则将某些列合并为日期列;如果参数为字典,则解析对应的列(字典中的值),并生成新的字段名(字典中的键)
na_values:指定原始数据中哪些特殊值代表了缺失值
thousands:指定原始数据集中的千分位符
convert_float:默认将所有的数值型字段转换为浮点型字段
converters:通过字典的形式,指定某些列需要转换的形式 #用法:converters = {0:str} 第0列转换为字符型
将多个key相同的字典列输入,输入为一个list,该list各个元素为dict,且key可以不同(以含最多的key的字典的key为columns):
d1 = {"A":1,"B":2,"C":3}
d2 = {"A":"a","B":"b",}
d3 = {"A":(1,2),"B":"ab","C":3}
li = [d1,d2,d3]
df = pd.DataFrame(li)
程序运行结果如下:
A B C
0 1 2 3.0
1 a b NaN
2 (1, 2) ab 3.0
当我们有一个字典列表时候,可以很方便的将其写入CSV文件中
#data_list是一个列表,列表元素是字典
df = pd.DataFrame(data_list)
csvname='Final_'+date.today().isoformat()+'.csv'
#通过指定columns内容可以设置表格列的顺序
df.to_csv(csvname, columns=cols,index=False, header=True)
除此之外还有一个用起来比较笨的方法
import xlsxwriter
#生成excel文件
def generate_excel(expenses):
workbook = xlsxwriter.Workbook('./rec_data.xlsx')
worksheet = workbook.add_worksheet()
# 设定格式