我能够将标题更改为文本,但我遇到了一个奇怪的错误。
现在它仍然返回NaN,但是如果我进入并手动突出显示列B(文本中的供应商名称)并通过excel将列更改为文本,则第二个脚本突然可以正常工作。而且我只需要更改工作表1。
是否可以在python / xlsxwriter中模仿它?
我有两个python脚本。一个人将从Excel工作表中获取数据,然后根据分组将其解析为单独的工作表。第二个读取总计,并返回一张电子邮件表。我一直在excel中手动构建它并致力于使其自动化。构建html表的第二个脚本在我的手册中也可以正常工作。我用xlsxwriter构建的工作簿看起来与B列完全相同,但供应商名称的B列格式设置为General而不是Text(手册页为text)。现在,我的第二个脚本在查看新建图纸时仅显示NaN。我尝试将格式设置为文本,但无法正常工作。我能够在其他列上设置货币格式,所以我不确定为什么文本不起作用。
[当我查看单元格时,我可以看到单元格显示的金额是相同的数据,但返回一个数字,但求和后的单元格却没有
我正在使用python 3.6和xlsxwriter。
B列是我需要更改的,它是供应商名称。
worksheet_paygroup.set_column('B:B',40)
我在文档中搜索了xlsxwriter,并发现了2.7的特定内容,但似乎不适用于3。
我试图设置列,写列,添加格式,添加编号格式
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.isnan = True
旧文件:2265.50(正确的金额)np.isnan = False
<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>
没有人会知道在这里要回答什么,因为没有问题,关于您想要达到的目标的主题标题很差,没有明确的介绍问题等。你到处都是。请构建您的帖子,以便它比您自己(您疯狂的科学家)为他人所理解。
我建议您制作一个小的测试用例,以便可以正确调试它。
df = pd.DataFrame({'$a':[1,2], '$b': [10,20]})
df.columns = ['a', 'b']
df