首页办公网络 › 该如何导出数据到Excel呢vns威尼斯城官网登入:,Pandas都是用得比较多的

该如何导出数据到Excel呢vns威尼斯城官网登入:,Pandas都是用得比较多的

运行结果:

 安装

1、下载地址:

  

  

  

  

  vns威尼斯城官网登入 1

 

 

 2、安装

  2.1、安装xlrd,

    方法一:

    切换到源文件下,执行命令 python setup.py install

    vns威尼斯城官网登入 2

    成功后会在 site-packages下新增xlrd文件夹及文件

    vns威尼斯城官网登入 3

  2.2、安装xlwt

    方法二:

    切换到源文件下,执行命令 pip
install xlwt-1.3.0-py2.py3-none-any.whl

    vns威尼斯城官网登入 4

    安装成功后,会在site-packages下新增xlwt文件夹及文件

  2.3、安装xlutils 

     切换到源文件下,执行命令 pip
install xlutils-2.0.0-py2.py3-none-any.whl

     vns威尼斯城官网登入 5

      安装成功后,会在site-packages下新增xlutils文件夹及文件

  2.4、安装 openpyxl  

    切换到源文件下,执行命令 python setup.py install

      vns威尼斯城官网登入 6

 

    安装成功后下列目录下会生成对应的文件夹及文件。

     vns威尼斯城官网登入 7

 

 

 

如果你在学习Python的过程当中有遇见任何问题,可以加入我的python交流学习qq群:683380553,多多交流问题,互帮互助,群里有不错的学习教程和开发工具。学习python有任何问题(学习方法,学习效率,如何就业),可以随时来咨询我,如果你准备学习大数据,也欢迎加入大数据学习交流qq群683380553,每天与大家分享学习资源哦。

  • openpyxl这个是推荐使用的库,可以读写Excel
    2010以上格式,以.xlsx结尾的文件。

  • xlsxwriter这个支持.xlsx,但是只支持写入,格式化等操作,不支持读取。

  • xlrd这个支持读取数据,支持以xls结尾的文件,也就是比较老的格式。

  • xlwt这个和上面的相对应,支持写入书和格式化数据,支持xls结尾的文件格式。

  • xlutils这个是整合了xlrd和xlwt两个库的功能。

ps,非常lucky,一番搜索后我找到了openpyxl,支持07+的excel,一直有人在维护,文档清晰易读,参照Tutorial和API文档很快就能上手,就是它了~

回答:

  • xlrd - 读取 Excel 文件

  • xlwt - 写入 Excel 文件

  • xlutils - 操作 Excel 文件的实用工具,如复制、分割、筛选等

  • openpyxl  - 操作xlsx后缀的excel,实践发现 xlrd、xlwt、xlutils
    可以读写操作elsx文件,但是实际保存后打不开,修改后缀为xls后方可正常打开,而程序是完成了正常的读写操作,只是人为不能正常打开文件,所以这里要增加一个新的模块。。

vns威尼斯城官网登入 8

from openpyxl import Workbookfrom openpyxl.compat import rangefrom openpyxl.cell import get_column_letterwb = Workbook()dest_filename = 'empty_book.xlsx'ws1 = wb.active #第一个表ws1.title = "range names" #第一个表命名#遍历第一个表的1到39行,每行赋值从1到599.for row in range: ws1.append(rangews2 = wb.create_sheet(title="Pi") # 创建第二个表ws2['F5'] = 3.14 #为第二个表的F5单元格赋值为3.14ws3 = wb.create_sheet(title="Data") #创建第三个表 /* 下面遍历第三个表的10到19行,27到53列,并对每一行的单元格赋一个当前列名的名字如下图 */for row in range: for col in range: _=ws3.cell(column=col,row=row,value="%s" % get_column_letter #_当作一个普通的变量,一般表示后边不再使用wb.save(filename=dest_filename) #保存

但是前一组(xlrd,xlwt)比较老,只能处理由Excel 97-2003 或者Excel 97
以前版本生成的xls格式的excel文件,xlwt甚至不支持07版以后的excel
,这个格式excel文件一般来说,最大只能支持256列或者65536行的excel文件。

推荐Pandas库,因为无论是用Python做数据分析还是用Python做机器学习,Pandas都是用得比较多的,个人感觉是也最方便。

如果仅仅是要以表单形式保存数据,可以借助 CSV
格式(一种以逗号分隔的表格数据格式)进行处理,Excel
也支持此格式。但标准的 Excel
文件(xls/xlsx)具有较复杂的格式,并不方便像普通文本文件一样直接进行读写,需要借助第三方库来实现。

如果excel文件是xls,2003版的,使用xlrd和xlwt库来对xls文件进行操作

  • 创建一个工作簿

因此面对需要导出大量数据到excel的情况,你将有如下三种选择,

bank_res2.to_excel("bank_res2.xlsx")

       xlrd、xlwt、xlutils、openpyxl

闲话不多聊,直接上代码干货

2.第二步,哈哈,没有啦,废话不说了,直接上代码,ps,代码中包含xlwt和openpyxl的两个实现版本。

在cmd窗口中,输入命令:pip install pandas

数据处理是 Python 的一大应用场景,而 Excel
则是最流行的数据处理软件。因此用 Python 进行数据相关的工作时,难免要和
Excel 打交道。

我们使用Python做数据挖掘和分析时候,当数据行超过一定数量,xls文件是存不下的。显然无法满足我们的大量数据存储需求,这个时候需要改用xlsx。

vns威尼斯城官网登入 9图片描述

(2) 使用openpyxl—,因为它支持对Excel 2007+ xlsx/xlsm format的处理

利用Python读取Excel文件

常用的库是 python-excel 系列:

对于2007版本的xlsx文件,最大行数是1048576行

  • 读取一个工作簿中的内容
# coding:utf-8
'''
# 希望对大家有帮助哈,请多提问题
create by yaoyz
date: 2017/01/24
'''
import xlrd
import xlwt
# workbook相关
from openpyxl.workbook import Workbook
# ExcelWriter,封装了很强大的excel写的功能
from openpyxl.writer.excel import ExcelWriter
# 一个eggache的数字转为列字母的方法
from openpyxl.utils import get_column_letter
from openpyxl.reader.excel import load_workbook
class HandleExcel():
 '''Excel相关操作类'''
 def __init__(self):
  self. head_row_labels = [u'学生ID',u'学生姓名',u'联系方式',u'知识点ID',u'知识点名称']
 """
  function:
   读出txt文件中的每一条记录,把它保存在list中
  Param:
   filename: 要读出的文件名
  Return:
   res_list: 返回的记录的list
 """
 def read_from_file(self,filename):
  res_list=[]
  file_obj=open(filename,"r")
  for line in file_obj.readlines():
   res_list.append(line)
  file_obj.close()
  return res_list
 """
  function:
   读出*.xlsx中的每一条记录,把它保存在data_dic中返回
  Param:
   excel_name: 要读出的文件名
  Return:
   data_dic: 返回的记录的dict
 """
 def read_excel_with_openpyxl(self, excel_name="testexcel2007.xlsx"):
  # 读取excel2007文件
  wb = load_workbook(filename=excel_name)
  # 显示有多少张表
  print "Worksheet range(s):" , wb.get_named_ranges()
  print "Worksheet name(s):" , wb.get_sheet_names()
  # 取第一张表
  sheetnames = wb.get_sheet_names()
  ws = wb.get_sheet_by_name(sheetnames[0])
  # 显示表名,表行数,表列数
  print "Work Sheet Titile:" ,ws.title
  print "Work Sheet Rows:" ,ws.get_highest_row()
  print "Work Sheet Cols:" ,ws.get_highest_column()
  # 获取读入的excel表格的有多少行,有多少列
  row_num=ws.get_highest_row()
  col_num=ws.get_highest_column()
  print "row_num: ",row_num," col_num: ",col_num
  # 建立存储数据的字典
  data_dic = {}
  sign=1
  # 把数据存到字典中
  for row in ws.rows:
   temp_list=[]
   # print "row",row
   for cell in row:
     print cell.value,
     temp_list.append(cell.value)
   print ""
   data_dic[sign]=temp_list
   sign+=1
  print data_dic
  return data_dic
 """
  function:
   读出*.xlsx中的每一条记录,把它保存在data_dic中返回
  Param:
   records: 要保存的,一个包含每一条记录的list
   save_excel_name: 保存为的文件名
   head_row_stu_arrive_star:
  Return:
   data_dic: 返回的记录的dict
 """
 def write_to_excel_with_openpyxl(self,records,head_row,save_excel_name="save.xlsx"):
  # 新建一个workbook
  wb = Workbook()
  # 新建一个excelWriter
  ew = ExcelWriter(workbook=wb)
  # 设置文件输出路径与名称
  dest_filename = save_excel_name.decode('utf-8')
  # 第一个sheet是ws
  ws = wb.worksheets[0]
  # 设置ws的名称
  ws.title = "range names"
  # 写第一行,标题行
  for h_x in range(1,len(head_row)+1):
   h_col=get_column_letter(h_x)
   #print h_col
   ws.cell('%s%s' % (h_col, 1)).value = '%s' % (head_row[h_x-1])
  # 写第二行及其以后的那些行
  i = 2
  for record in records:
   record_list=str(record).strip().split("\t")
   for x in range(1,len(record_list)+1):
    col = get_column_letter(x)
    ws.cell('%s%s' % (col, i)).value = '%s' % (record_list[x-1].decode('utf-8'))
   i += 1
  # 写文件
  ew.save(filename=dest_filename)
 """
  function:
   测试输出Excel内容
   读出Excel文件
  Param:
   excel_name: 要读出的Excel文件名
  Return:
   无
 """
 def read_excel(self,excel_name):
  workbook=xlrd.open_workbook(excel_name)
  print workbook.sheet_names()
  # 获取所有sheet
  print workbook.sheet_names() # [u'sheet1', u'sheet2']
  sheet2_name = workbook.sheet_names()[1]
  # 根据sheet索引或者名称获取sheet内容
  sheet2 = workbook.sheet_by_index(1) # sheet索引从0开始
  sheet2 = workbook.sheet_by_name('Sheet1')
  # sheet的名称,行数,列数
  print sheet2.name,sheet2.nrows,sheet2.ncols
  # 获取整行和整列的值(数组)
  rows = sheet2.row_values(3) # 获取第四行内容
  cols = sheet2.col_values(2) # 获取第三列内容
  print rows
  print cols
  # 获取单元格内容
  print sheet2.cell(1,0).value
  print sheet2.cell_value(1,0)
  print sheet2.row(1)[0].value
  # 获取单元格内容的数据类型
  print sheet2.cell(1,0).ctype
  # 通过名称获取
  return workbook.sheet_by_name(u'Sheet1')
 """
  function:
   设置单元格样式
  Param:
   name: 字体名字
   height: 字体高度
   bold: 是否大写
  Return:
   style: 返回设置好的格式对象
 """
 def set_style(self,name,height,bold=False):
  style = xlwt.XFStyle() # 初始化样式
  font = xlwt.Font() # 为样式创建字体
  font.name = name # 'Times New Roman'
  font.bold = bold
  font.color_index = 4
  font.height = height
  borders= xlwt.Borders()
  borders.left= 6
  borders.right= 6
  borders.top= 6
  borders.bottom= 6
  style.font = font
  style.borders = borders
  return style
 """
  function:
   按照 设置单元格样式 把计算结果由txt转变为Excel存储
  Param:
   dataset:要保存的结果数据,list存储
  Return:
   将结果保存为 excel对象中
 """
 def write_to_excel(self, dataset,save_excel_name,head_row):
  f = xlwt.Workbook() # 创建工作簿
  # 创建第一个sheet:
  # sheet1
  count=1
  sheet1 = f.add_sheet(u'sheet1', cell_overwrite_ok=True) # 创建sheet
  # 首行标题:
  for p in range(len(head_row)):
    sheet1.write(0,p,head_row[p],self.set_style('Times New Roman',250,True))
  default=self.set_style('Times New Roman',200,False) # define style out the loop will work
  for line in dataset:
   row_list=str(line).strip("\n").split("\t")
   for pp in range(len(str(line).strip("\n").split("\t"))):
    sheet1.write(count,pp,row_list[pp].decode('utf-8'),default)
   count+=1
  f.save(save_excel_name) # 保存文件
 def run_main_save_to_excel_with_openpyxl(self):
  print "测试读写2007及以后的excel文件xlsx,以方便写入文件更多数据"
  print "1. 把txt文件读入到内存中,以list对象存储"
  dataset_list=self.read_from_file("test_excel.txt")
  '''test use openpyxl to handle EXCEL 2007'''
  print "2. 把文件写入到Excel表格中"
  head_row_label=self.head_row_labels
  save_name="test_openpyxl.xlsx"
  self.write_to_excel_with_openpyxl(dataset_list,head_row_label,save_name)
  print "3. 执行完毕,由txt格式文件保存为Excel文件的任务"
 def run_main_save_to_excel_with_xlwt(self):
  print " 4. 把txt文件读入到内存中,以list对象存储"
  dataset_list=self.read_from_file("test_excel.txt")
  '''test use xlwt to handle EXCEL 97-2003'''
  print " 5. 把文件写入到Excel表格中"
  head_row_label=self.head_row_labels
  save_name="test_xlwt.xls"
  self.write_to_excel_with_openpyxl(dataset_list,head_row_label,save_name)
  print "6. 执行完毕,由txt格式文件保存为Excel文件的任务"
if __name__ == '__main__':
 print "create handle Excel Object"
 obj_handle_excel=HandleExcel()
 # 分别使用openpyxl和xlwt将数据写入文件
 obj_handle_excel.run_main_save_to_excel_with_openpyxl()
 obj_handle_excel.run_main_save_to_excel_with_xlwt()
 '''测试读出文件,注意openpyxl不可以读取xls的文件,xlrd不可以读取xlsx格式的文件'''
 #obj_handle_excel.read_excel_with_openpyxl("testexcel2003.xls") # 错误写法
 #obj_handle_excel.read_excel_with_openpyxl("testexcel2003.xls") # 错误写法
 obj_handle_excel.read_excel("testexcel2003.xls")
 obj_handle_excel.read_excel_with_openpyxl("testexcel2007.xlsx")

vns威尼斯城官网登入 10

   

 

#!/usr/bin/env python3 # -*- coding: utf-8 -*- # 读写2007 excel
import pprint import openpyxl import openpyxl.styles from
openpyxl.styles import Font,colors # 读取Excel文件 def readExcel:
workbook = openpyxl.load_workbook worksheet = workbook['用户'] list =
[] for row in worksheet.rows: # 1行1行读 lineData = [] # 行数据
col = 1 for cell in row: lineData.append(cell.value) # 1列1列读 col =
col + 1 list.append return list # 操作数据 def operateData: list =
readExcel # 去除第一行,第一行是表头 list.pop pprint.pprint
pprint.pprint("先按性别排序,再按身高排序") #
要对身高进行排序,但是男女有别 # 先按性别排序,再按身高排序
list.sort(key=lambda ele: (ele[3], ele[4])) pprint.pprint #
获取Excel标签列表 # 比如第5行标签列表,总共4列 ['A5', 'B5', 'C5',
'D5'] def getTagList(index, colNum): tagList = [] for i in range(0,
colNum): # A的ascii码值65 tag = chr + str tagList.append return tagList
#写入Excel文件 def writeExcel(outputFilePath, list): book =
openpyxl.Workbook() sheet = book.create_sheet sheet.title = "用户" #
sheet名称 rowNum = len try: # 1行1行读取 for i in range(1, rowNum + 1):
# 下标从1开始 datalist = list[i -1] # 读取1行 col = 1 # 1列1列写入
for data in datalist: sheet.cell(i, col, data) #写入内容 col += 1 #
获取标签列表 tagList = getTagList(i, len) font = Font('微软雅黑', size =
14, color = '333333') # 设置单元格字体、字号、颜色 for tag in tagList:
sheet[tag].font = font # 设置字体 # 保存文件
book.save(outputFilePath) except Exception as e: # 捕获异常 print #
主函数 if __name__ == "__main__": print("读取xlsx格式的数据")
userList = readExcel('user.xlsx') print("写入xlsx文件")
writeExcel("user2.xlsx", userList) print operateData('user.xlsx')

 from openpyxl import load_workbook wb = load_workbook('myname.xlsx') #加载一个工作簿 print wb.get_sheet_names() #获取各个sheet的名字

(4)
闲话少说,直接上代码,敬请参考

接下来还可以利用Python做数据透视:

如果excel文件是xlsx,2007以上版的,使用openpyxl库来对xlsx文件进行操作

最近需要用到Python来操作excel表,读取表格内容到数据库。所以就搜索了相关资料。查找了一下,可以操作excel表的几个库有以下几个:

(3) win32 COM (Windows only)

Python对Excel的操作我主要用xlwt、xlrd、xlutils这三个库。

Tips:xlrd、xlwt和openpyxl非python自带库,需要进行安装,可以查看我之前的文章。

(1) 换一种存储格式,如保存为CSV文件

转载本站文章请注明出处:vns威尼斯城官网登入 http://www.tiec-ccpittj.com/?p=2293

上一篇:

下一篇:

相关文章