利用Python读取EXCEL 文件
目录
介于方便和时间效率的考虑,利用PYTHON进行读取excel, 并保存到数据库中,这样可以节省大量的时间,同时,也间接的保护了数据库的数据。相对而言,公司的项目比较注重数据的保护,涉密,对数据库的保护很重要,我们要对他的操作十分小心。
下面是一个操作EXCEL,自己实现的代码:
- import openpyxl
- import time
- from flask import Flask
-
- from utils.oa_database import SQLALchemy
-
- class Config
- DEBUG = True
- SQLALCHEMY_DATABASE_URI = 'oracle://用户名:密码@ip地址/数据库名'
- SQLALCHEMY_TRACK_MODIFICATIONS = FALSE
- class ProjectManagement(object):
- def __init__(self, path):
- # 初始化app
- self.app = Flask(__name__)
- self.app.config.from_object(Config)
- self.db = SQLALchemy(self.app)
- # 打开EXCEL表格 path 是文件的绝对路径
- self.wb = openpyxl.load_workbook(path)
- # 操作单元格 Sheet1就是第一个单元格,如果不传, 默认第一个
- self.sheet = self.wb.get_sheet_by_name("Sheet1")
- small_list = list()
- new_list = list()
- write_list()
- last = list()
- finish_lish()
- # B4就是某一个cell单元格 获取单元格为B4的值
- self.data = self.sheet["B4"].value
- for i in range(10, self.sheet.max_raw//获取当前表格的最大行(无数据)):
- for j in range(0, 6):
- # 获取10-100行, 0-6列的数据
- data = self.sheet.cell(row=i, column=j).value
- print(data)
- def run(self):
- # 操作数据库实例方法
- pass
- if __name__ == '__main__':
- project_management("绝对路径/文件名.xlsx")
-
一、用xlrd和xlwt读写excel
首先下载安装xlrd和xlwt这两个库。
1、打开excel
readbook = xlrd.open_workbook(r'\test\canying.xlsx')
2、获取读入的文件的sheet
- sheet = readbook.sheet_by_index(1)#索引的方式,从0开始
- sheet = readbook.sheet_by_name('sheet2')#名字的方式
3、获取sheet的最大行数和列数
- nrows = sheet.nrows#行
- ncols = sheet.ncols#列
4、获取某个单元格的值
- lng = table.cell(i,3).value#获取i行3列的表格值
- lat = table.cell(i,4).value#获取i行4列的表格值
5、打开将写的表并添加sheet
- writebook = xlwt.Workbook()#打开一个excel
- sheet = writebook.add_sheet('test')#在打开的excel中添加一个sheet
6、将数据写入excel
- sheet.write(i,0,result[0])#写入excel,i行0列
- sheet.write(i,1,result[1])
7、保存
writebook.save('answer.xls')#一定要记得保存
二、使用openpyxl库读写excel
xlrd和xlwt处理的是xls文件,单个sheet最大行数是65535,如果有更大需要的,建议使用openpyxl函数,最大行数达到1048576。
如果数据量超过65535就会遇到:ValueError: row index was 65536, not allowed by .xls format
1、打开excel
2、获取打开的excel的sheet内容
3、获取sheet的最大行数和列数
4、获取某个单元格的值
print(ws.cell(1,1).value)
5、打开将写的表并添加sheet
6、保存
转载自:https://blog.csdn.net/Bad_Lee/article/details/82466136