openpyxl 保存的数据存在科学计数
时间: 2023-07-28 08:42:33 浏览: 159
如果您想在openpyxl中保存数据时避免出现科学计数法,可以使用以下代码将数字格式设置为文本格式:
```python
from openpyxl.styles import numbers
# 将数字格式设置为文本格式
ws['A1'].number_format = numbers.FORMAT_TEXT
# 将数字写入单元格
ws['A1'] = 1234567890123456789
# 保存工作簿
wb.save('example.xlsx')
```
这将把单元格A1的数字格式设置为文本格式,并将数字1234567890123456789写入该单元格。保存工作簿后,该单元格中的数字将以文本格式保存,而不是以科学计数法保存。
相关问题
你的方法没用,我输出到excel的数据任然展示科学计数法
如果在将数据导出到Excel时仍然看到科学计数法,那可能是因为你在读取或写入Excel文件的过程中,Excel本身的处理机制可能会覆盖掉Pandas的设置。你可以尝试以下步骤:
1. **设置时指定Excel writer**:在将DataFrame保存为Excel时,明确指定`to_excel`的`options`参数,设置`float_format`选项:
```python
df.to_excel('output.xlsx', float_format='%.2f')
```
2. **Excel工作表级别设置**:在打开的Excel文件中,右键点击工作表 -> 格式单元格 -> 数值 -> 尝试选择一种不会自动转换为科学计数法的格式。
3. **读取时指定**:如果是在读取Excel文件时遇到问题,可以尝试读取时就设置正确的数字格式:
```python
excel_df = pd.read_excel('input.xlsx', engine='openpyxl', float_precision=None) # 使用openpyxl引擎,并设置float_precision为None
```
请注意,某些情况下Excel本身对于大数值的确可能存在科学计数法的显示,这是它的特性之一。
阅读全文