跨平台兼容:统一解析四种Excel浮点数格式的实现方案
需求说明
我开发了一款支持用户复制Excel表格粘贴进行数据分析的程序,仅允许表格中存在浮点类型数值。目前遇到四种浮点数书写格式:
x = 123456.789 y = 123456,789 a = 123.456,789 b = 123,456.789
需要将这四种格式统一解析为123456.789,且程序需在Windows、Linux和Mac平台均能正常运行。
现有函数代码
# 从剪贴板读取CSV数据并转换为pandas DataFrame clipboard_dataframe = pd.read_clipboard() # 获取数据的行数和列数 paste_rows = len(clipboard_dataframe.index) paste_columns = len(clipboard_dataframe.columns) # 创建用于展示数据的表格组件 paste_janela = QTableWidget(paste_rows, paste_columns) # 设置表头和行索引的标签 paste_janela.setHorizontalHeaderLabels(clipboard_dataframe.columns) paste_janela.setVerticalHeaderLabels(clipboard_dataframe.index) # 填充表格数据 for x in range(paste_janela.rowCount()): for y in range(paste_janela.columnCount()): # 校验单元格值是否为数字类型,若不是则抛出错误 if not isinstance(clipboard_dataframe.iat[x,y], numbers.Number): error_message = QMessageBox.critical(self.janela_principal, "数据导入错误", "表格数据导入失败。\n仅支持实数类型的数值") raise ValueError("表格中存在无效值,仅允许填入实数") table_value = str(clipboard_dataframe.iat[x,y]) table_item = QTableWidgetItem(table_value) paste_janela.setItem(x, y, table_item) # 将表格添加到MDI区域,作为子窗口显示 self.sandbox_mdiarea.addSubWindow(paste_janela) # 显示窗口(默认状态下窗口会隐藏,需手动调用此方法) paste_janela.show()
内容的提问来源于stack exchange,提问作者Drovak
相关产品推荐
相关产品推荐

