Win32 module

Hi guys, I’m trying to deploy my app, and in the app I need to update financial data when user open the app, my sollution was use win32.client, I understand that streamlit cloud uses Linux machine. So I want to know options for this situation.

My code that I’m using is:

# Importing the pywin32 module
import win32com.client
  
# Opening Excel software using the win32com
File = win32com.client.Dispatch("Excel.Application")
  
# Optional line to show the Excel software
#File.Visible = 1
  
# Opening your workbook
Workbook = File.Workbooks.open(r"<path>\<file>.xlsx")
  
# Refeshing all the shests
Workbook.RefreshAll()
  
# Saving the Workbook
Workbook.Save()
  
# Closing the Excel File
File.Quit()

Hi @johnys22237,

Thanks for posting!

There are other ways to manipulate Excel files that are platform-independent like using these modules, pandas and openpyxl.

import pandas as pd

# Load workbook
data = pd.read_excel('<file>.xlsx')

# Update data (this would be your custom logic)
updated_data = data # apply your updates

# Save workbook
updated_data.to_excel('<file>.xlsx', index=False)

Let me know if this is helpful. Otherwise, please share more of your code so we can better help you troubleshoot the issue.

Hi @tonykip,

The problem here is the need to refresh automatically the stock market data by the code Workbook.RefreshAll()

This script refresh the excel financial data without need to open the file.

I don’t know if it is possible in pandas or openpyxl…

Any guess?

Thank you for your time.

Hey @johnys22237 ,

I believe to fix your issue, it’s best to load the workbook once instead of having it load on refresh

This approach should help- streamlit has a cache feature that allows you to load the csv once and reuse it without needing to reopen the file.

let me know if it works!

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.