繁体   English   中英

Python 代码不在 Excel 工作表中写入输出,但能够从同一工作簿中的另一个工作表获取输入

[英]Python code not writing output in excel sheet but is able to take input from another sheet in same workbook

背景:我正在从 Web 获取符号的选项链,然后将其写入 Excel 工作表。 我在同一个工作簿中还有另一个 excel 表,我从中获取输入以运行程序。 所有这些都是我用 excel 2016 做的。

程序中的代码示例作为整个程序很长:

import xlwings as xw
excel_file = 'test.xlsx'
wb = xw.Book(excel_file)
wb.save()
# Fetching User input for Script/Ticker else it will be set to NIFTY as default
try:
    Script_Input = pd.read_excel(excel_file, sheet_name = 'Input_Options', usecols = 'C')
    script = Script_Input.iloc[0,0]
except:
    script = 'NIFTY'
# Writing data in the sheet
sht_name = script + '_OC'
    try:
        wb.sheets.add(sht_name)
        print('new sheet added')
        wb.save()
    except:
        pass
        # print('sheet already present')
    # directing pointer towards current sheet to be written
    sheet = wb.sheets(sht_name)
    sheet.range('A4').options(index = False, header = False).value = df
    sheet.range('B1').value = underlying
    sheet.range('C1').value = underlying_Value
    # sheet.range('A3').options(index = False, header = False).value = ce_data_final
    # sheet.range('J3').options(index = False, header = False).value = pe_data_final
    wb.save()

问题:从昨天开始,我可以使用 excel 2016 打开我的 excel 工作簿并更改我的程序的输入,但是,我没有在从程序中获取输出的工作表中写入任何数据。 该程序运行完美,因为我可以在终端上测试输出。 此外,一旦我删除了工作表,就不会创建新的工作表。 我的尝试:我已经卸载了所有其他版本的 excel,所以现在只有 excel 2016 存在。 我已确保所有相应的文件格式都使用 excel 2016 作为默认应用程序。

另请注意,2 天前我能够在相应的工作表中完美地写入数据,但现在我无法这样做。

任何帮助表示赞赏...

对所有试图解决这个问题的人感到抱歉。 在@buran询问'df'之后,我查看了我的代码,发现在将'df'写入工作表之前我有一个return语句(我创建了一个单独的函数来在excel中写入数据)。 现在我已将该语句移至适当的位置,代码运行正常。 我非常抱歉,因为我没有意识到问题在第一位,并认为它与 excel 和 python 有关。 现在程序运行完美,我得到了我想要的输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM