文章目录

  • 将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最大行列数相关推荐

  1. python tkinter实现的文件夹下的excel表格汇总

    应工作需要.写了一个python实现的对文件夹下的所有excel表格汇总的小工具,现将源码发布,希望能给后来人参考. import xlrd import os import xlwt from xl ...

  2. python将医学dcm文件数据信息转换为excel文件

    分析结果展示 打开解析dcm信息后对应的excel文件,所有关键字段都录入到excel中,解决了日常处理异常dcm文件的复杂问题 fileutil文件 import os import shutil ...

  3. python post 请求json文件_post 请求获取 json

    不建议自己用正则处理,基本所有的编程语言里都有json处理的库,比如在python中,可以这样做 import json import urllib2 data = json.load(urllib2 ...

  4. python处理行情数据_请教 Python 如何解析 DBF 文件, SJSHQ.dbf 上交所行情文件,数据来源于巨灵数据。...

    使用 dbf, dbfread,simpledbf 均报错. b = dbfread.read('SJSXX.dbf', 'gb2312') File "/home/zhangyunfang ...

  5. python二进制方式读取文件,并将读取出的数据以txt的格式保存

    以二进制方式读取文件夹下所有二进制文件,将读取出的二进制数据转换为浮点数并以txt格式保存,代码如下: import os import struct import numpy as npdef re ...

  6. Python处理示波器CSV表格数据、微软excel格式数据

    Python处理示波器CSV文件数据.微软excel文件数据 软件环境 处理示波器导出的csv表格数据 csv原始数据形式 处理代码 代码运行结果 处理Simulink导出的excel表格数据 exc ...

  7. Python 实现office单个文件或整个文件夹(word,ppt,excel)转换成PDF文件,并获取PDF文件页数

    Python 实现office单个文件或整个文件夹(word,ppt,excel)转换成PDF文件,并获取PDF文件页数 文件夹中获取需要转换的文件数,将其全部转换或可单独转换单个文件,并获取转成PD ...

  8. 使用Python获取Excel文件中单元格公式的计算结果

    假设有如下Excel文件,其中第二个WorkSheet中数据如下: 其中D列为公式,现在要求输出该列公式计算的数值结果,代码如下: 代码运行结果: ----------相关阅读---------- 1 ...

  9. 【框架思路】python如何读取excel文件内容?如何获取excel文件的路径及sheet名称?

    转载请注明作者和出处:美二 https://blog.csdn.net/qq_32654897/article/details/88579713 一.背景说明 在自动化项目中,有时候测试用例会放在ex ...

最新文章

  1. 微信的行程卡服务器异常,行程卡打不开服务器崩了解决方法 行程卡短信查询步教程...
  2. 0074 几道面试题
  3. 高速建成Android开发环境ADT-Bundle和Hello World
  4. 今天诛仙3服务器维护么2014年4月27,诛仙2021年3月4日更新维护公告 诛仙2021年3月4日更新维护内容一览_手心游戏...
  5. python怎么发音乐到朋友圈_只要三步,用Python轻松制作短视频,你也能在朋友圈傲娇一把!...
  6. 电力系统同步发电机励磁系统的建模与仿真
  7. win10录屏_截屏、录屏这种小事,Win10自带功能比微信QQ强 N 倍!
  8. 2022-03-09:我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字。 你来猜我选了哪个数字。 如果你猜到正确的数字,就会 赢得游戏 。 如果你猜错了,那么我会告诉你,我选
  9. 双目测距 SGBM算法 Python版
  10. 只做正确的事情,并持续输出价值
  11. matlab的clear函数,[转载]matlab学习笔记(一)之clear,clc,close劝函数
  12. seo从入门到精通_SEO入门书籍推荐:从入门到精通,新人必看的3本书
  13. connection pool exhausted
  14. 孢子社群:今日推荐人工智能微信群:智能群3群 智能大数据合作交流群
  15. vue项目 - 封装loding组件
  16. IT(计算机/软件/互联网)专业词汇宝典
  17. 数据库系统原理(一)引言
  18. 产品读书《AI进化论:解码人工智能商业场景与案例》
  19. border-radius的使用
  20. element-ui 整体替换主题色

热门文章

  1. recyclerview删除item,解决下标越界
  2. 一.无线电能传输技术简介
  3. 服务器的安全措施有哪些
  4. “刷脸时代”到来!无需手机 两三秒完成支付
  5. 水龙头CE认证EN817怎么办理?
  6. unity射线ScreenPointToRay以屏幕中点的位置发射射线
  7. 强大的Flutter App升级功能
  8. (二十)【模电】(信号的运算与处理)集成运放组成的运算电路
  9. FastAdmin 如何部署到虚拟主机
  10. 博客推广站点收集(不断更新中......)