干货来袭之Python3.4如何读写Excel?

news/2024/7/21 7:14:25 标签: excel, python读写excel
[b][color=green][size=large]我们都知道在JAVA里,我们可以使用POI来操作Excel文件,在POI的API里有HSSFWorkbook支持03版的excel的读写,有XSSFWorkbook是针对07以后的excel文件的读写,那么在python3.x(散仙使用的版本是python3.4)里,我们应该如何操作excel

首先在python3.4里,我们可以使用新的python类库,来支持3.x之后的读写excel

针对 03版excel(xls结尾的),我们可以使用xlrd读,xlwt包来写
针对 07版excel(xlsx结尾的),我们可以使用openpyxl来操作读写excel
[/size][/color][/b]
[b][color=olive][size=large]
xlwt的下载地址[url]https://pypi.python.org/pypi/xlwt3[/url]
xlrd的下载地址[url]https://pypi.python.org/pypi/xlrd3[/url]
openpyx1的下载地址[url]https://pypi.python.org/pypi/openpyxl[/url]

[/size][/color][/b]

[b][color=olive][size=large]
下载完扩展的包库之后,直接解压某个目录,然后执行命令进行安装包系统的python类库里:
[/size][/color][/b]
python setup.py install

[b][color=green][size=large]核心代码,如下所示:[/size][/color][/b]


#读取excel使用(支持03)
import xlrd
#写入excel使用(支持03)
import xlwt3
#读取execel使用(支持07)
from openpyxl import Workbook
#写入excel使用(支持07)
from openpyxl import load_workbook


def showexcel(path):
workbook=xlrd.open_workbook(path)
sheets=workbook.sheet_names();
#多个sheet时,采用下面的写法打印
#for sname in sheets:
#print(sname)
worksheet=workbook.sheet_by_name(sheets[0])
#nrows=worksheet.nrows
#nclows=worksheet.ncols
for i in range(0,worksheet.nrows):
row=worksheet.row(i)

for j in range(0,worksheet.ncols):
print(worksheet.cell_value(i,j),"\t",end="")

print()


def writeexcel03(path):

wb=xlwt3.Workbook()
sheet=wb.add_sheet("xlwt3数据测试表")
value = [["名称", "hadoop编程实战", "hbase编程实战", "lucene编程实战"], ["价格", "52.3", "45", "36"], ["出版社", "机械工业出版社", "人民邮电出版社", "华夏人民出版社"], ["中文版式", "中", "英", "英"]]
for i in range(0,4):
for j in range(0,len(value[i])):
sheet.write(i,j,value[i][j])
wb.save(path)
print("写入数据成功!")

def writeexcel07(path):

wb=Workbook()
#sheet=wb.add_sheet("xlwt3数据测试表")
sheet=wb.create_sheet(0,"xlwt3数据测试表")

value = [["名称", "hadoop编程实战", "hbase编程实战", "lucene编程实战"], ["价格", "52.3", "45", "36"], ["出版社", "机械工业出版社", "人民邮电出版社", "华夏人民出版社"], ["中文版式", "中", "英", "英"]]
#for i in range(0,4):
#for j in range(0,len(value[i])):
#sheet.write(i,j,value[i][j])

#sheet.append(value[i])
sheet.cell(row = 1,column= 2).value="温度"
wb.save(path)
print("写入数据成功!")


def read07excel(path):
wb2=load_workbook(path)
#print(wb2.get_sheet_names())
ws=wb2.get_sheet_by_name("详单一")
row=ws.get_highest_row()
col=ws.get_highest_column()
print("列数: ",ws.get_highest_column())
print("行数: ",ws.get_highest_row())

for i in range(0,row):
for j in range(0,col):
print(ws.rows[i][j].value,"\t\t",end="")

print()

#print(ws.rows[0][0].value)
#print(ws.rows[1][0].value)
#print(ws.rows[0][1].value)


#excelpath=r"D://名称.xlsx"
#writepath=r"D://书籍明细07.xlsx"
#writeexcel03(writepath)
#writeexcel07(writepath)

read07path="D://名称.xlsx";


read03path=r"E:\同义词词库.xls";
#read07excel(read07path)
#read07excel(read03path)
#showexcel(excelpath);
showexcel(read03path);


[b][color=olive][size=large]最后,分享三个格式数字和日期,以及随机数生成3个小知识点[/size][/color][/b]




#浮点数格式化成百分比
pp="{:.1%}".format(0.2356)
print(pp)

#格式化日期
import datetime
s=(2014,12,11,0,0,0)
d="%02d-%02d-%02d" % s[:3]
print(d)

#打印随机数
import random
#浮点数随机数
f=random.uniform(1.0,100)
#整数范围随机数
f1=random.randint(1,23)
print(f1)
print(f)


[b][color=green][size=large]结果如下:[/size][/color][/b]
D:\python\python.exe D:/pythonide/pythonprojectworkspace/tnssolve/f.py
23.6%
2014-12-11
17
84.57222433948785

Process finished with exit code 0

http://www.niftyadmin.cn/n/789397.html

相关文章

奋斗的意义

经过了很长时间的沉寂和思考,这两天偶有感慨,遂发,以此文纪念自己的这一点成长. 引起我思考的起因很简单,我很喜欢打篮球,又一次遇到一个颜值,身高,球技完爆我的人,且性格开朗,加拿大上大学,最主要的是才19,年龄让我很无语,现在24了,一事无成,工作最近也没有着落,一个人在外漂泊…

C++实现两个已经排序的链表进行合并

//定义两个同种单向链表,包含一个整数值和一个指向本节点的类型的指针,该链表中的数据都已经排好序//编制程序,合并两个链表#include<iostream.h>#include<iomanip.h>struct Node{int key;Node *next;};void Create(Node *&);void Print(Node *);Node *Compare…

Lucene4.3进阶开发之纯阳无极(十九)

[b][colorred][sizex-large]原创不易&#xff0c;转载请务必注明&#xff0c;原创地址&#xff0c;谢谢配合! [url]http://qindongliang.iteye.com/blog/2164583[/url] [/size][/color][/b] [b][colorgreen][sizelarge]Lucene内置很多的分词器工具包&#xff0c;几乎涵盖了全球…

设计模式 (1)

设计模式概述 什么是设计模式&#xff1f; 一个模式有四个基本要素&#xff1a; 模式名称&#xff1a;助记名问题&#xff1a;描述在何时使用设计模式解决方案&#xff1a;描述合计的组成成分&#xff0c;它们的相互关系、各自的职责和协作方式效果&#xff1a;设计模式应用的效…

solr4.x之原子更新

[b][colorgreen][sizelarge]solr4.x发布以后&#xff0c;最值得人关注的一个功能&#xff0c;就是原子更新功能&#xff0c;传说的solr是否能真正的做到像数据库一样&#xff0c;支持单列更新呢&#xff1f; 在solr官方的介绍中&#xff0c;原子更新是filed级别的更新&#xff…

判断两个链表是否相交并找出交点

问题描述&#xff1a; 一个比较经典的问题&#xff0c;判断两个链表是否相交&#xff0c;如果相交找出他们的交点。 思路&#xff1a; 1、碰到这个问题&#xff0c;第一印象是采用hash来判断&#xff0c;将两个链表的节点进行hash&#xff0c;然后判断出节点&#xff0c;这种想…

Retinex图像增强

前一段时间研究了一下图像增强算法&#xff0c;发现Retinex理论在彩色图像增强、图像去雾、彩色图像恢复方面拥有很好的效果&#xff0c;下面介绍一下我对该算法的理解。 Retinex理论 Retinex理论始于Land和McCann于20世纪60年代作出的一系列贡献,其基本思想是人感知到某点的颜…

Javaweb新手软件推荐

Javaweb新手软件推荐前言一、javaweb有什么&#xff1f;二、Javaweb开发工具1.java开发工具2.前端web开发工具3.数据库工具4.其他工具三、一些学习经验总结前言 学习javaweb有半年了&#xff0c;作为一个初学者&#xff0c;想在这里记录自己的学习经历&#xff0c;也想留下一些…