【Python】Python转化dbf文件为Excel,获取Excel最大行列数
文章目录
- 将dbf转化为Excel文件(代码完整)
- 可行方案
- 网上找的不可行方案
- 安装win32com
- Python 写Excel
- 读取Excel行数,列数
- 读取Excel最大行数
- openpyxl不支持xls文件
- 可以用的方法pandas.
- 读取列数
将dbf转化为Excel文件(代码完整)
可行方案
# 导入模块
from dbfread import DBF
import xlwt
dbf_filename = r'D:Yu.dbf'
xls_filename = dbf_filename.replace('dbf','xls')
# 数据表文件名
table = DBF(dbf_filename, encoding='GBK')
all_sheet = []
book = xlwt.Workbook() # 新建一个excel
sheet = book.add_sheet('all_sheet') # 添加一个sheet页
row = 0 # 控制行数
write_row = 0
sheet_list = []
for record in table:col = 0if all_sheet == []: # 这个为了控制只读取字段名一次sheet_dict = record.keys()# print(type(sheet_dict)) # <class 'odict_keys'># sheet_list = list(set(sheet_dict)) # 将odict_keys转化为列表进行操作,这样xls的表头(第一行)会和原来的dbf顺序不一致sheet_list = list(sheet_dict) # 将odict_keys转化为列表进行操作,这样操作顺序和原来的一样all_sheet = sheet_listif write_row == 0: # 为了控制只将字段名写入一次col = 0for i in range(len(sheet_list)):sheet.write(row, col, sheet_list[i])col += 1col = 0row += 1write_row += 1for field in record:sheet.write(row, col, record[field])# print(field,'=',record[field],end='')col += 1row += 1
book.save(xls_filename) # 保存到指定目录下的指定文件
网上找的不可行方案
本来在网上进行搜索Python将dbf数据库转化Excel的方法,看到了很多条…
也没试验,就去搜索Excel读取指定行数的代码去了.没想到做完了Excel读取指定范围行数内容后,居然网上实现dbf转化Excel的代码居然跑不通…而且网上看到的都是一个方法…
可能是我环境的问题,使用Python3.6在Windows上进行开发.
但是需要调用win32com,说明在Linux也是行不通的.只能在Windows上进行开发
安装win32com
需要安装的win32com
直接安装是行不通的
Could not find a version that satisfies the requirement win32com (from versions: )
No matching distribution found for win32com
可以使用下面的:
python -m pip install pypiwin32
安装完成后:
from dbfpy import dbf
from time import sleep
from win32com import client# 导入模块方法def dbf2xls(dbfilename, exfilename): # 定义方法db = dbf.Dbf(dbfilename, True)ex = client.Dispatch('Excel.Application')wk = ex.Workbooks.Add()ws = wk.ActiveSheetex.Visible = Truesleep(1)r = 1c = 1for field in db.fieldNames:ws.Cells(r, c).Value = fieldc = c + 1r = 2for record in db:c = 1for field in db.fieldNames:ws.Cells(r, c).Value = record[field]c = c + 1r = r + 1wk.SaveAs(exfilename)wk.Close(False)ex.Application.Quit()db.close()if __name__ == '__main__':dbffilename = "test.dbf"xlsfilename = "text.xls"dbf2xls(dbf_filename, xls_filename)
报错信息:
Traceback (most recent call last):File "D:/ZhongXin/自己写dbf转化Excel.py", line 47, in <module>from dbfpy import dbfFile "C:\Program Files (x86)\Python36-32\lib\site-packages\dbfpy\dbf.py", line 280print repr(_rec)^
SyntaxError: invalid syntax
Python 写Excel
import xlwt
# 只能写不能读
stus = [['姓名', '年龄', '性别', '身高'],['滚筒洗衣机', 20, '男', 170],['kid', 20, '男', 169],['莱特米', 20, '男', 171]]
book = xlwt.Workbook() # 新建一个excel
sheet = book.add_sheet('all_name') # 添加一个sheet页
row = 0 # 控制行数
for stu in stus:col = 0 # 控制列数for stu_info in stu: # 再循环里面list的值,每一列sheet.write(row, col, stu_info)col += 1row += 1
book.save('stu.xls') # 保存到当前目录下
输出结果:
姓名 年龄 性别 身高
滚筒洗衣机 20 男 170
kid 20 男 169
莱特米 20 男 171
读取Excel行数,列数
读取Excel最大行数
openpyxl不支持xls文件
# xls文件
import openpyxl
wb1=openpyxl.load_workbook(xls_filename)
sheet1=wb1.get_sheet_by_name(sheet_name)
print(sheet1.max_column) # 没有()
Error信息:
openpyxl.utils.exceptions.InvalidFileException: openpyxl does not support the old .xls file format, please use xlrd to read this file, or convert it to the more recent .xlsx file format.
所以 openpyxl是不支持xls的…
可以用的方法pandas.
可以使用的做法:
使用pandas来做
data_frame = pd.read_excel(xls_filename, sheetname=sheet_name)
print(data_frame)
print(len(data_frame))
warning信息:
FutureWarning: The `sheetname` keyword is deprecated, use `sheet_name` instead**kwds)
所以在上面的代码里,将sheetname 写成sheet_name 就没有warning信息
读取列数
还是使用的pandas模块的信息:
excel_column_1 = data_frame.columns.size
excel_column_2 = len(data_frame.columns)
print(excel_column_1,excel_column_2) # 20 20
【Python】Python转化dbf文件为Excel,获取Excel最大行列数相关推荐
- python tkinter实现的文件夹下的excel表格汇总
应工作需要.写了一个python实现的对文件夹下的所有excel表格汇总的小工具,现将源码发布,希望能给后来人参考. import xlrd import os import xlwt from xl ...
- python将医学dcm文件数据信息转换为excel文件
分析结果展示 打开解析dcm信息后对应的excel文件,所有关键字段都录入到excel中,解决了日常处理异常dcm文件的复杂问题 fileutil文件 import os import shutil ...
- python post 请求json文件_post 请求获取 json
不建议自己用正则处理,基本所有的编程语言里都有json处理的库,比如在python中,可以这样做 import json import urllib2 data = json.load(urllib2 ...
- python处理行情数据_请教 Python 如何解析 DBF 文件, SJSHQ.dbf 上交所行情文件,数据来源于巨灵数据。...
使用 dbf, dbfread,simpledbf 均报错. b = dbfread.read('SJSXX.dbf', 'gb2312') File "/home/zhangyunfang ...
- python二进制方式读取文件,并将读取出的数据以txt的格式保存
以二进制方式读取文件夹下所有二进制文件,将读取出的二进制数据转换为浮点数并以txt格式保存,代码如下: import os import struct import numpy as npdef re ...
- Python处理示波器CSV表格数据、微软excel格式数据
Python处理示波器CSV文件数据.微软excel文件数据 软件环境 处理示波器导出的csv表格数据 csv原始数据形式 处理代码 代码运行结果 处理Simulink导出的excel表格数据 exc ...
- Python 实现office单个文件或整个文件夹(word,ppt,excel)转换成PDF文件,并获取PDF文件页数
Python 实现office单个文件或整个文件夹(word,ppt,excel)转换成PDF文件,并获取PDF文件页数 文件夹中获取需要转换的文件数,将其全部转换或可单独转换单个文件,并获取转成PD ...
- 使用Python获取Excel文件中单元格公式的计算结果
假设有如下Excel文件,其中第二个WorkSheet中数据如下: 其中D列为公式,现在要求输出该列公式计算的数值结果,代码如下: 代码运行结果: ----------相关阅读---------- 1 ...
- 【框架思路】python如何读取excel文件内容?如何获取excel文件的路径及sheet名称?
转载请注明作者和出处:美二 https://blog.csdn.net/qq_32654897/article/details/88579713 一.背景说明 在自动化项目中,有时候测试用例会放在ex ...
最新文章
- 微信的行程卡服务器异常,行程卡打不开服务器崩了解决方法 行程卡短信查询步教程...
- 0074 几道面试题
- 高速建成Android开发环境ADT-Bundle和Hello World
- 今天诛仙3服务器维护么2014年4月27,诛仙2021年3月4日更新维护公告 诛仙2021年3月4日更新维护内容一览_手心游戏...
- python怎么发音乐到朋友圈_只要三步,用Python轻松制作短视频,你也能在朋友圈傲娇一把!...
- 电力系统同步发电机励磁系统的建模与仿真
- win10录屏_截屏、录屏这种小事,Win10自带功能比微信QQ强 N 倍!
- 2022-03-09:我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字。 你来猜我选了哪个数字。 如果你猜到正确的数字,就会 赢得游戏 。 如果你猜错了,那么我会告诉你,我选
- 双目测距 SGBM算法 Python版
- 只做正确的事情,并持续输出价值
- matlab的clear函数,[转载]matlab学习笔记(一)之clear,clc,close劝函数
- seo从入门到精通_SEO入门书籍推荐:从入门到精通,新人必看的3本书
- connection pool exhausted
- 孢子社群:今日推荐人工智能微信群:智能群3群 智能大数据合作交流群
- vue项目 - 封装loding组件
- IT(计算机/软件/互联网)专业词汇宝典
- 数据库系统原理(一)引言
- 产品读书《AI进化论:解码人工智能商业场景与案例》
- border-radius的使用
- element-ui 整体替换主题色