如果在使用`openpyxl`加载Excel文件时仍然出现了`#NAME?`的错误,那么可能是因为`openpyxl`无法解析某些特殊的公式或函数。`openpyxl`并不完全支持Excel中的所有功能。
为了解决这个问题,您可以尝试使用`pywin32`来获取单元格的值,而不是依赖于`openpyxl`的`data_only`参数。以下是一个示例代码:
- import win32com.client as win32
- path_cb = path1 + '/' + file_small
- xl = win32.gencache.EnsureDispatch("Excel.Application")
- wb = xl.Workbooks.Open(path_cb)
- xl.Visible = False
- xl.DisplayAlerts = False
- try:
- ws = wb.ActiveSheet
- # 处理数据...
- except Exception as e:
- print(f"Error: {str(e)}")
- finally:
- wb.Close(SaveChanges=False)
- xl.Quit()
复制代码
这段代码使用`win32com.client`来获取Excel应用程序对象,并打开指定的Excel文件。然后,您可以通过`ActiveSheet`属性获取活动工作表对象,并进行数据处理。
最后,确保在`wb.Close()`和`xl.Quit()`之前将`xl.DisplayAlerts`设置为`False`,以避免弹出确认对话框。如果需要保存更改,请将`SaveChanges`参数设置为`True`。
希望这可以解决您的问题。如果问题仍然存在,请提供更多详细信息,以便我们能够更好地帮助您解决问题。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。