Spaces:
Runtime error
Runtime error
import streamlit as st | |
import openpyxl | |
from io import BytesIO | |
import tempfile | |
st.title("💹 改变表格中数值单位") | |
with st.expander("💡 使用介绍"): | |
st.info("首先上传 xlsx 或者 csv 文件,然后选择文件中需要调整单位的表格,输入更改后的单位。例如:万元 输入 10000。最后点击下载。") | |
st.info("注意:这里默认原上传文件单位为元,如果原上传单位为万元,需要调整到元,则在‘更改后单位值’输入 0.0001。") | |
uploaded_file = st.file_uploader("1. 上传表格文件", type=["csv","xlsx"]) | |
if uploaded_file is not None: | |
wb = openpyxl.load_workbook(uploaded_file) | |
container = st.container() | |
all = st.checkbox("选择所有") | |
if all: | |
selected_options = container.multiselect("2. 选择一个或者多个表格:", | |
wb.sheetnames,wb.sheetnames) | |
else: | |
selected_options = container.multiselect("2. 选择一个或者多个表格:", | |
wb.sheetnames) | |
d = st.text_input("3. 更改后单位值") | |
if len(selected_options) != 0 and d != '': | |
for i in selected_options: | |
ws = wb[i] | |
for row in ws.iter_rows(): | |
for cell in row: | |
if cell.data_type == 'n': | |
if cell.value != None: | |
cell.value = cell.value/int(d) | |
with tempfile.NamedTemporaryFile() as tmp: | |
wb.save(tmp.name) | |
data = BytesIO(tmp.read()) | |
st.download_button(label='📥 下载结果文件', data=data, mime='xlsx', file_name= uploaded_file.name) |