Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在xlsxwriter duplicateworksheetname中格式化数据帧_Python_Pandas_Xlsxwriter - Fatal编程技术网

Python 在xlsxwriter duplicateworksheetname中格式化数据帧

Python 在xlsxwriter duplicateworksheetname中格式化数据帧,python,pandas,xlsxwriter,Python,Pandas,Xlsxwriter,当我尝试编写pandas数据帧并使用xlsxwriter应用某些格式时,出现DuplicateWorksheetName错误 我没有看到类似的问题。我见过一些关于格式没有被选择性地应用于标题等的问题,对此有一些解决方案 import xlsxwriter import pandas as pd dest_filename="C:/Users/User11/Python test/sample.xlsx" writer = pd.ExcelWriter(dest_filename, engine

当我尝试编写pandas数据帧并使用xlsxwriter应用某些格式时,出现
DuplicateWorksheetName
错误

我没有看到类似的问题。我见过一些关于格式没有被选择性地应用于标题等的问题,对此有一些解决方案

import xlsxwriter
import pandas as pd

dest_filename="C:/Users/User11/Python test/sample.xlsx"
writer = pd.ExcelWriter(dest_filename, engine='xlsxwriter')
wb = writer.book
df1 = pd.DataFrame({'col_1': [1, 2, 3],'col_2': [4, 5, 6],}, columns=['col_1', 'col_2'])
ws = wb.add_worksheet("Sheet1")
format1 = wb.add_format({'bg_color': '#FFC7CE','font_color': '#9C0006'})
format2 = wb.add_format({'bg_color': '#000000','font_color': '#000000'})
ws.set_column('B:P', 2)
# Set the format but not the column width.
ws.set_column('A:A', None)
ws.conditional_format('B2:P16', {'type': 'blanks','stop_if_true': True,'format': format1})
df1.to_excel(writer,sheet_name="Sheet1",)
writer.save()
“DuplicateWorksheetName”异常表示您试图创建两个同名的工作表(Excel不允许)。这发生在
add_工作表(“Sheet1”)
df1.to_excel(writer,sheet\u name=“Sheet1”)
调用中

正确的方法是将Pandas与XlsxWriter中的工作表直接操作混合使用,即使用Pandas(
.to_excel()
)创建工作表,然后访问创建的工作表和工作簿对象

请参阅上的XlsxWriter文档。下面是一个基于您的代码的工作示例:

import xlsxwriter
import pandas as pd

dest_filename="C:/Users/User11/Python test/sample.xlsx"
writer = pd.ExcelWriter(dest_filename, engine='xlsxwriter')

df1 = pd.DataFrame({'col_1': [1, 2, 3],
                    'col_2': [4, 5, 6],}, 
                    columns=['col_1', 'col_2'])
df1.to_excel(writer,sheet_name="Sheet1")

# Get the xlsxwriter objects from the dataframe writer object.
wb = writer.book
ws = writer.sheets['Sheet1']

format1 = wb.add_format({'bg_color': '#FFC7CE','font_color': '#9C0006'})
format2 = wb.add_format({'bg_color': '#000000','font_color': '#000000'})

ws.set_column('B:P', 2)

ws.conditional_format('B2:P16', {'type': 'blanks',
                                 'stop_if_true': True,
                                 'format': format1})

writer.save()

似乎存在同名的工作表。尝试更改正在处理的文件/工作表的名称。明白了。事实上,我在发布问题后就知道了。你的回答也证实了这一点。谢谢