将列设置为num format text而不是general python 3

2024-04-24 07:34:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我可以将标题改为文本作为列,但我得到了一个奇怪的错误。你知道吗

现在它仍然返回NaN,但是如果我进入并手动高亮显示B列(文本中的供应商名称),然后通过excel将该列更改为文本,那么第二个脚本会很好地工作。我只需要更改工作表1。你知道吗

在python/xlsxwriter中有没有一种方法可以模仿这种情况?你知道吗

我有两个python脚本。我们将从excel工作表中获取数据,并根据分组将其解析为单独的工作表。第二个读取总数并返回一个电子邮件表格。我一直在用excel手工构建它,并致力于它的自动化。构建html表的第二个脚本与我的手动工作表配合得很好。我用xlsxwriter构建的工作簿看起来一模一样,保存的是带有供应商名称的列B的格式是“常规”,而不是文本(手册页是文本)。我的第二个脚本现在只在查看新建的表时显示NaN。我试过把格式设成文本,但没用。我可以在不同的列上设置货币格式,所以我不知道为什么文本不起作用。你知道吗

当我看这些单元格时,我可以看到显示数量的单元格,这是相同的数据,返回一个数字,但求和的单元格不返回

我使用的是python3.6和xlsxwriter。你知道吗

B列是我需要更改的,它是供应商名称。你知道吗

工作表_paygroup.set\u列('B:B',40)

我在文档中搜索了xlsxwriter,找到了2.7版的一些东西,它是针对这个的,但似乎不适用于3。你知道吗

我试过设置列,写列,添加格式,添加num格式

import pandas as pd
import numpy as np
import os
import datetime as dt
import pandas.io.formats.excel

df = pd.read_excel(test_sheet)

#this grabs the data from different excel sheet
df_paygroup = df[df['payments'] == 'paygroup']
df_paygroup.drop(columns='unneeded_column')
df_paygroup.insert(3, 'Total', value=' ') #sets new column
df_paygroup = df_paygroup[['Vendor', 'Name', 'Amount', 'Total']]
df_paygroup = df_paygroup.sort_values(by=['Amount'], ascending=False)


writer = pd.ExcelWriter('new_sheet.xlsx', engine='xlsxwriter')
pandas.io.formats.excel.header_style = None

df_paygroup.to_excel(writer, sheet_name='paygroup', index=False)
#there are 15 of these with different names


workbook = writer.book
money_format = workbook.add_format({'num_format': '[$$-409]#,##0.00'})
text_format = workbook.add_format({'num_format': '@'})

worksheet_paygroup = writer.sheets['paygroup']
worksheet_paygroup.set_column('A:A', 11)
worksheet_paygroup.set_column('B:B', 40)
# worksheet_paygroup.write(text_format) $this returns error
worksheet_paygroup.set_column('C:C', 19, money_format)
worksheet_paygroup.set_column('D:D', 16)
worksheet_paygroup.write_formula('E1', '=SUM(C2:C743)')
worksheet_paygroup.set_column('E:E', 20, money_format)


writer.save()
writer.close()

第二个脚本中的输出应该显示美元值而不是nan。你知道吗

新表显示: 南 np.伊斯南=正确

旧文件: 2265.50(正确金额) np.伊斯南=错误

<tr>
                            <th>Pay Cycle</th>
                            <th>Description</th>
                            <th>Pay Cycle Amount</th>
                            <th>Daily Total</th>
                        </tr>
                        <tr>
                            <td>paygroup</td>
                            <td>Description</td>
                            **<td>$nan</td>**
                            <td> </td>
                        </tr>

Tags: 文本import脚本formatdf格式columnexcel