python - ExcelWriter 写入时覆盖工作表
问题描述
该程序应获取单个工作表的内容并将它们放入一个 Excel 工作簿中。它几乎做到了,但它是覆盖而不是将新工作表附加到最终工作簿中。我读到 pandas excel writer 是解决这个问题的方法,关于它为什么会有这种行为的任何想法?
import xlwt, csv, os
from openpyxl import load_workbook
import pandas as pd
from pandas import ExcelWriter
csv_folder = r'C:\Users\Me\Desktop\Test_Folder\\'
for fil in os.listdir(csv_folder):
if '.xlsx' not in fil:
continue
else:
pass
df = pd.read_excel(csv_folder+fil, encoding = 'utf8')
file_name = fil.replace('.xlsx','')
writer = pd.ExcelWriter('condensed_output.xlsx', engine = 'xlsxwriter')
df.to_excel(writer, sheet_name = file_name)
writer.save()
#writer.close()
解决方案
确保 writer.save() 在循环之外。还要注意工作表名称的字符限制,因此如果文件名在某一点之前都相同,那么您也会冒着以这种方式覆盖工作表名的风险。
import xlwt, csv, os
from openpyxl import load_workbook
import pandas as pd
from pandas import ExcelWriter
csv_folder = r'C:\Users\Me\Desktop\Test_Folder\\'
writer = pd.ExcelWriter('condensed_output.xlsx', engine = 'xlsxwriter')
for fil in os.listdir(csv_folder):
if '.xlsx' not in fil:
continue
else:
pass
df = pd.read_excel(csv_folder+fil, encoding = 'utf8')
file_name = fil.replace('.xlsx','')
df.to_excel(writer, sheet_name = file_name)
writer.save() #make sure this is outside of the loop.
ETA:也在循环之外建立作家
推荐阅读
- python - 如何在熊猫中将脏字符串映射到数字
- swift - 实例成员“addChild”不能用于“AnchorEntity”类型
- java - 在 JFreeChart 中如何获取图表上某个点的 [x,y] 值?
- machine-learning - 如何使用 BERT 在大量自定义文本中训练词嵌入?
- r - 我的 While 循环没有在 R 中完成,我怎么知道问题出在哪里?
- julia - 如何在 Julia 中实现 SingleLinkedList
- python - 对于带有列表和文件夹传输的其他内容
- xmlhttprequest - 无法在最近的 chrome 更新中解析 Access-Contro-Allow-Headers
- android - 如何将 TensorFlow AI 模型(物体识别)放入 Android APP?
- node.js - 更新nodejs中嵌套对象的值