python读取excel表格生成erlang数据

作者:Shay_黄 时间:2022-12-26 05:03:54 

为了将excel数据自动转换成所需要的erlang数据,听同事说使用python会很方便简单,就自学了两天python,写了一个比较粗糙的python脚本,不过能用,有什么优化的地方请指教

代码如下:


#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import sys
from openpyxl.reader.excel import load_workbook
import os
import os.path

def gen_data(filename):
wb = load_workbook('dataxlsx/' + filename + '.xlsx') # 加载文件所有分页

sheetnames = wb.get_sheet_names() # 获取所有分页的名字列表
ws = wb.get_sheet_by_name(sheetnames[0]) # 取第一个分页的数据
# print 'ws:', ws

# print "Work Sheet Titile:", ws.title # 分页名称
# print "Work Sheet Rows:", ws.max_row # 分页行数
# print "Work Sheet Cols:", ws.max_column # 分页列数

content = [] # 数据内容
id_list = [] # ID列表

# ========================start concat need data=================
content.append('%% this file is auto maked!\n')
content.append('-module(' + filename + ').\n')
content.append('-compile(export_all).\n')

for i in range(4, ws.max_row + 1):  # 从表格第三行开始读取,由于range函数不包含文件尾,所以为了读到最后一行需+1
 for j in range(ws.max_column):
  if ws[i][j].value == None:
   content.append(' ,""')
  elif j == 0:
   id_list.append(int(ws[i][j].value))
   content.append('get(' + str(ws[i][j].value).strip() + ') ->\n')
   content.append(' {r_' + filename + ', ' + str(ws[i][j].value).strip())
  else:
   content.append(' ,' + str(ws[i][j].value).strip())
 content.append('};\n')

content.append('get(_) ->\n')
content.append(' not_match.\n')

content.append('length() ->\n')
content.append(' ' + str(ws.max_row - 1) + '.\n')
content.append('id_list() ->\n ' + str(id_list) + '.')
# ==============================end===========================
# 写入数据
f = file('./server/' + filename + '.erl','w+')
f.writelines(content)
print 'create new file:', filename + '.erl'
f.close() # 关闭通道
return

def start_gen():
# 删除旧的数据
delnames = os.listdir('./server')
for delname in delnames:
 os.remove('./server/' + delname)
 print 'delete old file:', delname

for _, _, filenames in os.walk('./dataxlsx'): # 遍历文件夹
 for filename in filenames: # 遍历文件
  find = filename.find('.xlsx') # 返回该文件名称长度
#   print "find is:", find
  if filename[0] == '~' or find == -1: # 文件名以'~'开头或者找不到文件名, 如以'.'开头的文件
   continue
  else:
   split_list = filename.split('.') # 使用'.'分割文件名,获得[文件名,文件格式]
#    print split_list
   gen_data(split_list[0]) # 用文件名作为参数调用gen_data

start_gen()

来源:http://www.cnblogs.com/huangxiaoyi/p/7434851.html

标签:python,excel,erlang
0
投稿

猜你喜欢

  • Centos7下安装和配置MySQL5.7.20的详细教程

    2024-01-17 06:21:13
  • 详解Python进行数据相关性分析的三种方式

    2022-05-09 18:50:12
  • 用css+js给网页背景插入flash播放器

    2007-10-21 09:27:00
  • Vue中如何合并el-table第一列相同数据

    2024-05-22 10:42:46
  • 详解Linux下安装php环境并且配置Nginx支持php-fpm模块

    2023-11-11 02:02:50
  • asp 防盗链代码(彻底屏蔽迅雷,旋风,快车下载站内资源)

    2011-02-26 10:46:00
  • Python Pandas数据合并pd.merge用法详解

    2022-07-18 22:15:47
  • Go语言将string解析为time.Time时两种常见报错

    2024-05-22 17:45:48
  • pycharm激活码免费分享适用最新pycharm2020.2.3永久激活

    2021-12-11 10:17:09
  • python 利用 PIL 将数组值转成图片的实现

    2021-03-28 07:17:13
  • 详解Python中位运算的简单实现

    2021-09-07 14:36:38
  • JavaScript 箭头函数的特点、与普通函数的区别

    2024-05-02 17:30:45
  • 用pywin32实现windows模拟鼠标及键盘动作

    2023-07-04 21:26:30
  • 学习ASP的理由 分析小结

    2011-02-26 10:54:00
  • Python调用Redis的示例代码

    2021-02-10 09:51:10
  • vue.js如何在网页中实现一个金属抛光质感的按钮

    2024-04-28 09:21:26
  • oracle 字符串转成行

    2024-01-26 01:30:13
  • Pycharm直接使用远程服务器代码并调试的解决方法

    2021-05-13 10:21:03
  • Python 等分切分数据及规则命名的实例代码

    2023-03-26 05:01:17
  • 利用Python实现微信找房机器人实例教程

    2022-12-09 09:12:27
  • asp之家 网络编程 m.aspxhome.com