每日10行代码111:python获取excel中各列的最大长度
背景为了把excel顺利的导入oracle,我准备写一个小程序,但是在oracle建表时,不知道各列设成多少的长度比较合适,于是我就写了这个# _*_ encoding:utf-8 _*_import openpyxlimport datetimedef get_str_real_len(content):real_str_len = len(content)for ch in content:i
·
背景
为了把excel顺利的导入oracle,我准备写一个小程序,但是在oracle建表时,不知道各列设成多少的长度比较合适,于是我就写了这个
# _*_ encoding:utf-8 _*_
import openpyxl
import datetime
def get_str_real_len(content):
real_str_len = len(content)
for ch in content:
if '\u2E80' <= ch <= '\uFE4F':
real_str_len += 1
return real_str_len
def get_real_len(content):
if isinstance(content,str):
real_len = get_str_real_len(content)
elif isinstance(content,int):
real_len = get_str_real_len(str(content))
elif isinstance(content,datetime.datetime):
real_len = 25 # 一个完整的日期加时间一般是18,为了适当冗余,我设成25位
else:
real_len = 0
return real_len
path = r'E:\工作\当前工作\房地产一体化三方数据整理\商品房预售许可\预售许可证信息-汇总.xlsx'
wb = openpyxl.load_workbook(path)
ws = wb.active
col_max_lens = []
for col in ws.columns:
col_lens = (get_real_len(cell.value) for cell in col[1:]) # 索引从1开始是为了去除首行的标题
max_col_len = max(col_lens)
col_max_lens.append(max_col_len)
print(col_max_lens)
输出结果:
[34, 42, 8, 5, 22, 10, 0, 6, 0, 6, 0, 25]
我的代码暂时没考虑浮点数的精度问题,这个以后有时间再补上吧。

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)