plsql导出表结构和数据的方法(教你如何导出和导入数据结构)

plsql导出表结构和数据的方法(教你如何导出和导入数据结构)

、Python的一大应用就是数据分析了,而数据分析中,经常碰到需要处理Excel数据的情况。这里做一个Python处理Excel数据的总结,基本受用大部分情况。相信以后用Python处理Excel数据不再是难事儿!

Python处理Excel数据需要用到2个库:xlwt 和 xlrd。xlwt库负责将数据导入生成Excel表格文件,而 xlrd库则负责将Excel表格中的数据取出来。

xlwt库将数据导入Excel将数据写入一个Excel文件wb=xlwt.Workbook()#添加一个表ws=wb.add_sheet(‘test’)#3个参数分别为行号,列号,和内容#需要注意的是行号和列号都是从0开始的ws.write(0,0,’第1列’)ws.write(0,1,’第2列’)ws.write(0,2,’第3列’)#保存excel文件wb.save(‘./test.xls’)

可以看到,用xlwt库操作非常简单,基本就三步走:

打开一个Workbook对象,并用add_sheet方法添加一个表

然后就是用write方法写入数据

最后用save方法保存

需要注意的是,xlwt库里面所定义的行和列都是从0开始计数的

定制Excel表格样式

表格样式一般主要有这么几块内容:字体、对齐方式、边框、背景色、宽度以及特殊内容,比如超链接、日期时间等。下面我们来分别看看用xlwt库怎么定制这些样式。

字体

xlwt库支持的字体属性也比较多,大概如下:

字体属性

设置字体需要用到xlwt库的XFStyle类和Font类,代码模版如下:

style=xlwt.XFStyle()#设置字体font=xlwt.Font()#比如设置字体加粗和下划线font.bold=Truefont.underline=Truestyle.font=font#然后应用ws.write(2,1,’test’,style)

后续几个属性的设置都是类似的,都是4步走:

拿到XFStyle

拿到对应需要的属性,比如这里的Font对象

设置具体的属性值

最后就是在write方法写入数据的时候应用就行

单元格对齐

先来看单元格对齐怎么设置

#单元格对齐alignment=xlwt.Alignment()#水平对齐方式和垂直对齐方式alignment.horz=xlwt.Alignment.HORZ_CENTERalignment.vert=xlwt.Alignment.VERT_CENTER#自动换行alignment.wrap=1style.alignment=alignment#然后应用ws.write(2,1,’test’,style)

上面这个自动换行的属性还是蛮有用的,因为我们很多时候数据会比较长,最好再加上单元格的宽度属性一起使用,这样整体样式会好很多

单元格宽度设置:

#设置单元格宽度,也就是某一列的宽度ws.col(0).width=6666单元格的背景色

背景色对应的属性是 Pattern

#背景色pattern=xlwt.Pattern()pattern.pattern=xlwt.Pattern.SOLID_PATTERN#背景色为黄色#0=Black,1=White,2=Red,3=Green,4=Blue,5=Yellow,6=Magenta,#7=Cyan,16=Maroon,17=DarkGreen,18=DarkBlue,19=DarkYellow,#almostbrown),20=DarkMagenta,21=Teal,22=LightGray,23=DarkGray#…pattern.pattern_fore_colour=5style.pattern=pattern#然后应用ws.write(2,1,’test’,style)单元格边框

边框属性是Borders

单元格边框就2类:颜色和边框线样式

可以分别设置上下左右边框的颜色和样式

#边框borders=xlwt.Borders()#边框可以分别设置top、bottom、left、right#每个边框又可以分别设置颜色和线样式:实线、虚线、无#颜色设置,其他类似borders.left_colour=0x40#设置虚线,其他类似borders.bottom=xlwt.Borders.DASHEDstyle.borders=borders#然后应用ws.write(2,1,’test’,style)特殊内容,比如超链接和公式

特殊内容一般主要会碰到这几类:超链接、公式和时间日期

处理这些特殊内容需要用到Formula

#超链接link=’HYPERLINK(“http://www.baidu.com”;”Baidu”)’formula=xlwt.Formula(link)ws.write(2,0,formula)#公式也是类似ws.write(1,1,xlwt.Formula(‘SUM(A1,B1)’))#时间style.num_format_str=’M/D/YY’ws.write(2,1,datetime.datetime.now(),style)

以上就是用Python将数据写入到Excel的全部内容了,下面我们再来看看怎么读取Excel中的数据做处理。

xlrd库读取Excel中的数据读取Excel文件

同样的用xlrd库读取Excel的数据也是轻轻松松,先来看下实现代码

#先打开一个文件wb=xlrd.open_workbook(file_path)#获取第一个表sheet1=wb.sheet_by_index(0)#总行数nrows=sheet1.nrows#总列数ncols=sheet1.ncols#后面就通过循环即可遍历数据了#取数据foriinrange(nrows):forjinrange(ncols):#cell_value方法取出第i行j列的数据value=sheet1.cell_value(i,j)print(value)

总结一下,分为一下几步:

首先通过xlrd库的open_workbook方法打开Excel文件

然后通过sheet_by_index方法获取表

然后分别获取表的行数和列数,便于后面循环遍历

根据列数和行数,循环遍历,通过cell_value方法获取每个单元格中的数据

工作表的相关操作

获取一个工作表,有多种方式

#通过索引sheet1=wb.sheets()[0]sheet1=wb.sheet_by_index(0)#通过名字sheet1=wb.sheet_by_name(‘test’)#获取所有表名#sheet_names=wb.sheet_names()

获取某一行或某一列的所有数据

#获取行中所有数据,返回结果是一个列表tabs=sheet1.row_values(rowx=0,start_colx=0,end_colx=None)#返回一行一共有多少数据len_value=sheet1.row_len(rowx=0)

row_values的三个参数分别是:行号、开始的列和结束的列,其中结束的列为None表示获取从开始列到最后的所有数据

类似的还有获取某一列的数据

cols=sheet1.col_values(colx=0,start_rowx=0,end_rowx=None)处理时间数据

时间数据比较特殊,没发直接通过上面的cell_value方法获取。需要先转换为时间戳,然后再格式化成我们想要的格式。

比如要获取Excel表格中,格式为2019/8/13 20:46:35的时间数据

#获取时间time_value=sheet1.cell_value(3,0)#获取时间戳time_stamp=int(xlrd.xldate.xldate_as_datetime(time_value,0).timestamp())print(time_stamp)#格式化日期time_rel=time.strftime(“%Y/%m/%d”,time.localtime(time_stamp))print(time_rel)

基本也是三步走:

通过cell_value方法获取时间值

然后通过xldate_as_datetime方法获取时间戳

然后格式化一下

总结

Excel文件是用Python处理数据时常会碰到的一类场景,有了xlwt 和 xlrd的帮助可以非常快速的导入和导出Excel数据。大家可以把这篇文章收藏起来,以后碰到处理Excel文件的时候可以参考一下。

发表评论

登录后才能评论