#encoding=utf-8
#import sys
#reload(sys)
#sys.setdefaultencoding('utf8')
import pandas as pd
def make_sheet():
col = ['周一', '周二', '周三', '周四', '周五']
idx = ['第一节', '第二节', '第三节', '第四节']
Monday = ['歌唱', '阅读', '互动', '科学']
Tuesday = ['语文', '数学', '英语', '劳动']
Wednesday = ['物理', '化学', '生物', '体育']
Thursday = ['政治', '历史', '地理', '心理']
Friday = ['游戏', '互动', '故事', '音乐']
df_content = pd.DataFrame(data={col[0]: Monday,
col[1]: Tuesday,
col[2]: Wednesday,
col[3]: Thursday,
col[4]: Friday},
index=idx,
columns=col)
return df_content
if __name__ == '__main__':
excel_writer = pd.ExcelWriter('write1.xlsx')
df = make_sheet()
df.to_excel(excel_writer, sheet_name='课程表', float_format='%.2f', header=True, index=True, index_label='课表')
excel_writer.save()
效果图如下:
一般情况下只需要表头(列名),不需要行索引(行名)。要生成这样的表只需要:
#encoding=utf-8
import pandas as pd
def read_excel(file_name, sheet_names='Sheet1'):
sheet = pd.read_excel(file_name, sheet_name=sheet_names)
#表头
print(sheet.columns.values)
#内容
sheet = sheet.values
for i in range(sheet.shape[0]):
print(sheet[i])
def read_sheet(file_name):
#获取各sheet名
content = pd.ExcelFile(file_name)
sheet_names = content.sheet_names
#遍历sheet
sheets = pd.read_excel(file_name, sheet_name=sheet_names)
for i in range(len(sheets)):
sheet = sheets[sheet_names[i]]
#表头
print(sheet.columns.values)
#内容
sheet = sheet.values
for j in range(sheet.shape[0]):
print(sheet[j])
if __name__ == '__main__':
read_excel('read1.xlsx')
read_sheet('read2.xlsx')
如果读取不含表头的表,使用header参数:
pd.read_excel(file_name, header=None)
函数read_excel读取含有单个sheet的表格,函数read_sheet读取含有多个sheet的表格。
read1.xlsx如下:
读取read1.xlsx的结果:
read2.xlsx如下:
读取read2.xlsx的结果: