鱼C论坛

 找回密码
 立即注册
查看: 1417|回复: 7

Python处理Excel,其中单号列,显示不全,如果显示全,求代码?

[复制链接]
发表于 2023-12-1 09:58:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
错误显示:1.31182E+19
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-1 09:58:43 | 显示全部楼层
要显示完整的单号列,可以使用openpyxl库来处理Excel文件。请按照以下步骤操作:

1. 首先,确保你已经安装了openpyxl库。你可以使用以下命令来安装它:
pip install openpyxl
2. 然后,导入openpyxl库中的load_workbook函数和cell模块中的get_column_letter函数:
from openpyxl import load_workbookfrom openpyxl.utils import get_column_letter
3. 加载Excel文件并获取工作表:
# 指定你的Excel文件路径file_path = "your_file_path.xlsx"# 加载工作簿workbook = load_workbook(file_path)# 获取第一个工作表worksheet = workbook.active
4. 遍历需要显示完整的列,并调整列宽:
# 要显示完整的列,比如第一列,可以将其索引设为1column_index = 1# 获取列字母column_letter = get_column_letter(column_index)# 获取单元格对象column_cells = worksheet[column_letter]# 计算最长单元格文本的长度max_length = 0for cell in column_cells:    if len(str(cell.value)) > max_length:        max_length = len(str(cell.value))# 根据最长文本长度调整列宽worksheet.column_dimensions[column_letter].width = max_length + 2
5. 最后,保存修改后的Excel文件:
# 保存修改后的Excel文件workbook.save(file_path)
这样,你就能够调整Excel文件中的列宽,确保单号列能够完全显示了。记得将`your_file_path.xlsx`替换为你实际的Excel文件路径。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-1 10:02:08 | 显示全部楼层
跟列宽没有关系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-1 10:02:31 | 显示全部楼层
冰菲 发表于 2023-12-01 10:02
跟列宽没有关系

如果单号被显示为科学计数法(例如1.31182E+19),可以通过设置单元格的格式来显示完整的数字。以下是示例代码:
from openpyxl import load_workbook# 指定你的Excel文件路径file_path = "your_file_path.xlsx"# 加载工作簿workbook = load_workbook(file_path)# 获取第一个工作表worksheet = workbook.active# 遍历需要处理的列,比如第一列,可以将其索引设为1column_index = 1for row in worksheet.iter_rows(min_row=2, min_col=column_index, values_only=True):    # 将科学计数法格式的数字转换为字符串    value = '{:.0f}'.format(row[0])        # 更新单元格的值    worksheet.cell(row=row[0].row, column=column_index, value=value)# 保存修改后的Excel文件workbook.save(file_path)
这段代码使用openpyxl库加载Excel文件并遍历指定列的每个单元格。然后,将科学计数法格式的数字转换为字符串,并更新单元格的值。最后,保存修改后的Excel文件。记得将`your_file_path.xlsx`替换为你实际的Excel文件路径。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-1 10:17:54 | 显示全部楼层
FishC_GPT 发表于 2023-12-1 10:02
如果单号被显示为科学计数法(例如1.31182E+19),可以通过设置单元格的格式来显示完整的数字。以下是示 ...

无法解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-1 10:18:07 | 显示全部楼层

如果单号列显示为科学计数法,可能是因为单元格的格式设置不正确。你可以通过设置单元格格式为文本来确保完整显示单号。以下是使用openpyxl库设置单元格格式的示例代码:
from openpyxl import load_workbookfrom openpyxl.styles import numbers# 指定你的Excel文件路径file_path = "your_file_path.xlsx"# 加载工作簿workbook = load_workbook(file_path)# 获取第一个工作表worksheet = workbook.active# 遍历需要处理的列,比如第一列,可以将其索引设为1column_index = 1for row in worksheet.iter_rows(min_row=2, min_col=column_index):    # 将单元格的值转换为字符串并更新格式为文本    for cell in row:        cell.value = str(cell.value)        cell.number_format = numbers.FORMAT_TEXT# 保存修改后的Excel文件workbook.save(file_path)
这段代码会将指定列的单元格值转换为字符串,并将单元格格式设置为文本。请确保你已经将`your_file_path.xlsx`替换为实际的Excel文件路径。保存并运行此代码后,重新打开Excel文件,单号列应该可以完整显示了。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-1 10:24:44 | 显示全部楼层
df['单号列'] = df['单号列'].astype(str),这个代码比较简单,已解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-1 10:24:54 | 显示全部楼层
冰菲 发表于 2023-12-01 10:24
df = df.astype(str),这个代码比较简单,已解决

非常好,使用`df.astype(str)`将DataFrame中的所有列都转换为字符串类型是一种简单有效的方法。这样可以确保所有数据都以字符串形式表示,避免了科学计数法显示问题。感谢您的分享,希望对其他人有所帮助。如果您还有其他问题,我会很乐意为您解答。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 17:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表