我正在try 使用python库xlsxWriter在Excel中添加数据表

我的名为whole的数据帧有26列(与字母表中的字母完全相同),因此我try 使用以下代码设置它们:

workbook = xlsxwriter.Workbook(f'workbook.xlsx', {"nan_inf_to_errors": True})
worksheet = workbook.add_worksheet("Column Setter")

worksheet.add_table(f"A1:{chr(ord('@')+len(whole.columns))}{len(whole)}", {'data': 
whole.values.tolist(),
                'banded_columns': True, 'banded_rows': False, 'header_row': True, 
                 'columns': [{'header': col} for col in whole.columns.tolist()]})
worksheet.autofit()

然而,输出似乎将所有列名都设置为Column1,依此类推.

enter image description here

这段代码似乎非常适合另一个有3列的数据帧,所以我很难理解为什么它不能工作.任何答案都会非常有帮助.

编辑

我已经更改了代码以匹配jmcnamara cpde.它看起来是这样的:

workbook = xlsxwriter.Workbook(f'workbook.xlsx', {"nan_inf_to_errors": True})
worksheet = workbook.add_worksheet("Column Setter")

(max_row, max_col) = whole.shape

worksheet.add_table(0, 0, max_row, max_col - 1,
 {
    'data': whole.values,
    'banded_columns': True,
    'banded_rows': False,
    'header_row': True, 
 }
)

worksheet.autofit()

然而,这似乎根本没有写入数据,只是显示了26列中的7列.它似乎也根本没有创建一个表.请看下面.

enter image description here

推荐答案

它应该会像预期的那样工作.以下是一个基于您的示例的示例,其中包含一个示例数据帧:

import pandas as pd
import xlsxwriter

# Create a Pandas dataframe from some sample data.
data = {}
for num in range(1, 27):
    data[f"Data {num}"] = [1, 2, 3, 4, 5]

whole = pd.DataFrame(data)

# Create a workbook and worksheet.
workbook = xlsxwriter.Workbook(f"workbook.xlsx", {"nan_inf_to_errors": True})
worksheet = workbook.add_worksheet("Column Setter")

# Get the dimensions of the dataframe.
(max_row, max_col) = whole.shape

# Add the Excel table structure.
worksheet.add_table(0, 0, max_row, max_col - 1,
    {
        "data": whole.values,
        "banded_columns": True,
        "banded_rows": False,
        "header_row": True,
        "columns": [{"header": col} for col in whole.columns],
    },
)

worksheet.autofit()

workbook.close()

而且输出结果看起来和预期的一样:

enter image description here

我不知道它是否是您输出中的一个因素,但最好使用(ROW,COOL)语法来表示表的维度,而不是试图构造一个A1样式的字符串.此外,示例中的tolist()个方法调用也不是必需的.

Python相关问答推荐

情节生成的饼图文本超出页面边界

如何编写一个正规表达式来查找序列中具有2个或更多相同辅音的所有单词

Polars -转换为PL后无法计算熵.列表

Twilio:CallInstance对象没有来自_的属性'

创建带有二维码的Flask应用程序,可重定向到特定端点

Python panda拆分列保持连续多行

Pandas 在时间序列中设定频率

指示组内的rejected_time是否在creation_timestamp后5分钟内

三个给定的坐标可以是矩形的点吗

如何检测背景有噪的图像中的正方形

当使用keras.utils.Image_dataset_from_directory仅加载测试数据集时,结果不同

Pytest两个具有无限循环和await命令的Deliverc函数

不理解Value错误:在Python中使用迭代对象设置时必须具有相等的len键和值

使可滚动框架在tkinter环境中看起来自然

如何让程序打印新段落上的每一行?

try 将一行连接到Tensorflow中的矩阵

有没有一种ONE—LINER的方法给一个框架的每一行一个由整数和字符串组成的唯一id?

Python Tkinter为特定样式调整所有ttkbootstrap或ttk Button填充的大小,适用于所有主题

在Python中使用yaml渲染(多行字符串)

OpenCV轮廓.很难找到给定图像的所需轮廓