一、创建数据
import pandas as pd
import numpy as np
data1 = pd.DataFrame(np.arange(12).reshape((3, 4)))
print(data1)
data1.to_excel('123.xlsx', sheet_name='123')
输出:
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
excel文件:
二、追加sheet
1、直接使用to_excel:
data2 = pd.DataFrame(np.random.randn(6, 6))
print(data2)
data2.to_excel('123.xlsx', sheet_name='234')
输出:
0 1 2 3 4 5
0 -1.733698 -0.275682 -1.706241 -0.025365 1.341233 1.646947
1 0.869634 0.526175 -2.543201 -0.309278 -1.275674 -0.600460
2 -0.206907 0.308826 -0.692131 -1.167456 -1.766714 0.840579
3 -0.668781 -1.580144 0.601353 -0.424380 -1.199741 -1.141591
4 -1.368125 0.040602 1.173418 -0.001301 -1.783911 0.790756
5 -0.442426 0.250814 -0.515925 0.717436 0.211946 0.522879
excel:
可以看到,sheet"123"被覆盖,并没有满足我们的需求
2、使用ExcelWriter:
import pandas as pd
import numpy as np
writer = pd.ExcelWriter('123.xlxs')
data1 = pd.DataFrame(np.arange(12).reshape((3, 4)))
print(data1)
data1.to_excel(writer, sheet_name='123')
data2 = pd.DataFrame(np.random.randn(6, 6))
print(data2)
data2.to_excel(writer, sheet_name='234')
writer.save()
excel:
可以看到两个数据加到了不同的sheet中。但是,当我们想再追加数据到新的sheet中时,sheet’123’sheet’234’就会被覆盖:
writer = pd.ExcelWriter('123.xlsx')
data3 = pd.DataFrame(np.random.randn(10, 5))
data3.to_excel(writer, sheet_name='345')
writer.save()
可以看到,sheet’123’sheet’234’被覆盖
3、究极选择openpyxl.load_workbook
from openpyxl import load_workbook
writer = pd.ExcelWriter('123.xlsx')
book = load_workbook('123.xlsx')
writer.book = book
data3 = pd.DataFrame(np.random.randn(10, 5))
data3.to_excel(writer, sheet_name='345')
writer.save()
excel:
可以看到,data3成功大加到了sheet’345’中,并且没有覆盖前两个sheet