1. 程式人生 > >python高手之路python處理excel檔案

python高手之路python處理excel檔案

用python來自動生成excel資料檔案。python處理excel檔案主要是第三方模組庫xlrd、xlwt、xluntils和pyExcelerator,除此之外,python處理excel還可以用win32com和openpyxl模組。
  • 方法一
    小羅問我怎麼從excel中讀取資料,然後我百了一番,做下記錄excel資料圖(小羅說資料要給客戶保密,我隨手寫了幾行資料):
    資料
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 讀取excel資料
# 小羅的需求,取第二行以下的資料,然後取每行前13列的資料
import xlrd
data = xlrd.open_workbook('test.xls'
) # 開啟xls檔案 table = data.sheets()[0] # 開啟第一張表 nrows = table.nrows # 獲取表的行數 for i in range(nrows): # 迴圈逐行列印 if i == 0: # 跳過第一行 continue print table.row_values(i)[:13] # 取前十三列

excel的寫操作等後面用到的時候在做記錄

  • 方法二
    使用xlrd讀取檔案,使用xlwt生成Excel檔案(可以控制Excel中單元格的格式)。但是用xlrd讀取excel是不能對其進行操作的;而xlwt生成excel檔案是不能在已有的excel檔案基礎上進行修改的,如需要修改檔案就要使用xluntils模組。pyExcelerator模組與xlwt類似,也可以用來生成excel檔案。

1.[程式碼]test_xlrd.py

#coding=utf-8
#######################################################
#filename:test_xlrd.py
#author:defias
#date:xxxx-xx-xx
#function:讀excel檔案中的資料
#######################################################
import xlrd
#開啟一個workbook
workbook = xlrd.open_workbook('E:\\Code\\Python\\testdata.xls'
) #抓取所有sheet頁的名稱 worksheets = workbook.sheet_names() print('worksheets is %s' %worksheets) #定位到sheet1 worksheet1 = workbook.sheet_by_name(u'Sheet1') """ #通過索引順序獲取 worksheet1 = workbook.sheets()[0] #或 worksheet1 = workbook.sheet_by_index(0) """ """ #遍歷所有sheet物件 for worksheet_name in worksheets: worksheet = workbook.sheet_by_name(worksheet_name) """ #遍歷sheet1中所有行row num_rows = worksheet1.nrows for curr_row in range(num_rows): row = worksheet1.row_values(curr_row) print('row%s is %s' %(curr_row,row)) #遍歷sheet1中所有列col num_cols = worksheet1.ncols for curr_col in range(num_cols): col = worksheet1.col_values(curr_col) print('col%s is %s' %(curr_col,col)) #遍歷sheet1中所有單元格cell for rown in range(num_rows): for coln in range(num_cols): cell = worksheet1.cell_value(rown,coln) print cell """ #其他寫法: cell = worksheet1.cell(rown,coln).value print cell #或 cell = worksheet1.row(rown)[coln].value print cell #或 cell = worksheet1.col(coln)[rown].value print cell #獲取單元格中值的型別,型別 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error cell_type = worksheet1.cell_type(rown,coln) print cell_type """

2. [程式碼]test_xlwt.py

#coding=utf-8
#######################################################
#filename:test_xlwt.py
#author:defias
#date:xxxx-xx-xx
#function:新建excel檔案並寫入資料
#######################################################
import xlwt
#建立workbook和sheet物件
workbook = xlwt.Workbook() #注意Workbook的開頭W要大寫
sheet1 = workbook.add_sheet('sheet1',cell_overwrite_ok=True)
sheet2 = workbook.add_sheet('sheet2',cell_overwrite_ok=True)
#向sheet頁中寫入資料
sheet1.write(0,0,'this should overwrite1')
sheet1.write(0,1,'aaaaaaaaaaaa')
sheet2.write(0,0,'this should overwrite2')
sheet2.write(1,2,'bbbbbbbbbbbbb')
"""
#-----------使用樣式-----------------------------------
#初始化樣式
style = xlwt.XFStyle() 
#為樣式建立字型
font = xlwt.Font()
font.name = 'Times New Roman'
font.bold = True
#設定樣式的字型
style.font = font
#使用樣式
sheet.write(0,1,'some bold Times text',style)
"""
#儲存該excel檔案,有同名檔案時直接覆蓋
workbook.save('E:\\Code\\Python\\test2.xls')
print '建立excel檔案完成!'

3. [程式碼]test_xlutils.py

#coding=utf-8
#######################################################
#filename:test_xlutils.py
#author:defias
#date:xxxx-xx-xx
#function:向excel檔案中寫入資料
#######################################################
import xlrd
import xlutils.copy
#開啟一個workbook
rb = xlrd.open_workbook('E:\\Code\\Python\\test1.xls') 
wb = xlutils.copy.copy(rb)
#獲取sheet物件,通過sheet_by_index()獲取的sheet物件沒有write()方法
ws = wb.get_sheet(0)
#寫入資料
ws.write(1, 1, 'changed!')
#新增sheet頁
wb.add_sheet('sheetnnn2',cell_overwrite_ok=True)
#利用儲存時同名覆蓋達到修改excel檔案的目的,注意未被修改的內容保持不變
wb.save('E:\\Code\\Python\\test1.xls')

4. [程式碼]test_pyExcelerator_read.py

#coding=utf-8
#######################################################
#filename:test_pyExcelerator_read.py
#author:defias
#date:xxxx-xx-xx
#function:讀excel檔案中的資料
#######################################################
import pyExcelerator
#parse_xls返回一個列表,每項都是一個sheet頁的資料。
#每項是一個二元組(表名,單元格資料)。其中單元格資料為一個字典,鍵值就是單元格的索引(i,j)。如果某個單元格無資料,那麼就不存在這個值
sheets = pyExcelerator.parse_xls('E:\\Code\\Python\\testdata.xls')
print sheets

5. [程式碼]test_pyExcelerator.py

#coding=utf-8
#######################################################
#filename:test_pyExcelerator.py
#author:defias
#date:xxxx-xx-xx
#function:新建excel檔案並寫入資料
#######################################################
import pyExcelerator
#建立workbook和sheet物件
wb = pyExcelerator.Workbook()
ws = wb.add_sheet(u'第一頁')
#設定樣式
myfont = pyExcelerator.Font()
myfont.name = u'Times New Roman'
myfont.bold = True
mystyle = pyExcelerator.XFStyle()
mystyle.font = myfont
#寫入資料,使用樣式
ws.write(0,0,u'ni hao 帕索!',mystyle)
#儲存該excel檔案,有同名檔案時直接覆蓋
wb.save('E:\\Code\\Python\\mini.xls')
print '建立excel檔案完成!'

相關推薦

python高手python處理excel檔案

用python來自動生成excel資料檔案。python處理excel檔案主要是第三方模組庫xlrd、xlwt、xluntils和pyExcelerator,除此之外,python處理excel還可以用win32com和openpyxl模組。 方法一

python高手python處理excel檔案(方法彙總)

用python來自動生成excel資料檔案。python處理excel檔案主要是第三方模組庫xlrd、xlwt、xluntils和pyExcelerator,除此之外,python處理excel還可以用win32com和openpyxl模組。 方法一: 小羅問我怎麼從

Python高手》PDF版

png ext mar mark proc https 圖片 pdf 之路 鏈接:https://pan.baidu.com/s/1B3xU431guBa_CZ7PPMwpfQ《Python高手之路》PDF版

Python學習 -- Python基礎叠代器及for循環工作原理》

pre 循環 next 是我 我們 png 捕獲 模擬 檢查   提到叠代器不得不說叠代器協議,叠代器協議是指:對象必須提供一個__next__()方法,執行該方法要麽返回叠代中的下一項,要麽就拋出一個StopIteration異常(相當於報錯的意思)以終止叠代。然而遵循這

Python學習 -- Python基礎裝飾器》

接收 學習之路 代碼 內部 AS OS 如果 col PE   裝飾器,本質上是一個函數,更加直觀的說,裝飾器就是等於 高階函數 + 函數嵌套 + 閉包 ,裝飾器是具有某個基礎功能的函數,這種功能可以加成到其他函數上,使得其他函數的功能更加強大。除此以外,裝飾器還有兩個重要

Python學習 -- Python基礎切片》

nas col 結束 了解 默認值 對象 學習 好的 tuple   切片從字面上的意思也能很好的了解,就是將某個東西切成一個片段。也就是說,切片是一種對數據的操作,截取數據中的一個片段,字符串,列表和元組都支持切片。 # 語法: 操作對象[起始位置:結束位置:步長] #

Python學習——Python基礎運算符

學習之路 type text 技術 計算 python基礎 tex fff oss 算術運算 先and 後 or 先計算括號內 執行順序: 從前到後 結果 True OR ==> True True And ==> 繼續走 False Or

Python學習——Python基礎基本資料型別(列表、元組和字典)

基本資料型別 數字 字串 列表 list 元組 tuple 字典 dict 布林值 bool 列表和元組 列表:有序,元素可以被修改元組: 書寫格式:元組的一級元素不可被修改,不能被增加或者刪除,一般寫元租的時候,推薦在最後加入',' 索引:v =

Python學習——Python基礎基本數據類型

開始 bit mark end sprint upper sdi com 字符串轉換 基本數據類型 數字 字符串 列表 list 元組 tuple 字典 dict 布爾值 bool ×××的魔法 數字 將字符串轉換為數字:int a = "123" print(ty

Python學習——Python基礎基本數據類型(列表、元組和字典)

bre mark 有序 數據 str sca 索引 更新 蘋果 基本數據類型 數字 字符串 列表 list 元組 tuple 字典 dict 布爾值 bool 列表和元組 列表:有序,元素可以被修改元組: 書寫格式:元組的一級元素不可被修改,不能被增加或者刪除,一般寫

Python學習——Python基礎基本資料型別

基本資料型別 數字 字串 列表 list 元祖 tuple 字典 dict 布林值 bool ×××的魔法 數字 將字串轉換為數字:int a = "123" print(type(a),a) b = int(a) print(type(b),b) n

python學習--python基礎列表操作

本文主要介紹下python列表的的一些基本操作 列表是我們在python程式設計中常用的資料型別之一,通過列表我們可以對資料實現最方便的儲存、修改等操作。 定義列表  1 names=['ZhangSan','LiSi','WangWu']  列表的訪問:通過下表來訪問列表中的元素,下標從0開始計數,還可以反

Python自學-Python基礎教程-24:使用tkinter的Canvas畫布元件繪圖

要在tkinter的視窗上繪圖也是可以做到的,這需要使用Canvas畫布元件。 新增一個Canvas物件也很簡單,指定寬度和高度,就可以在這個物件上畫圖。 tkWindow = tk.Tk() draw = tk.Canvas(tkWindow, width=100

Python學習---Python 字串

Python訪問字串中的值 Python不支援單字元型別,單字元也在Python也是作為一個字串使用。 Python訪問子字串,可以使用方括號來擷取字串,如下例項: i = "Hello World" print "i[0]:",i[0] 以上例項執

Python學習---Python函式

Python函式 函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的程式碼段。函式能提高應用的模組性,和程式碼的重複利用率。 定義一個函式 你可以定義一個由自己想要功能的函式,以下是簡單的規則: 函式程式碼塊以 def 關鍵詞開頭,後接

Python自學-Python基礎教程-22:使用tkinter的PhotoImage開發網路圖片檢視器

前面介紹了訪問網路和下載圖片的程式,並且也有了可以展示介面的程式,這樣就可以開發一個有介面的網路圖片檢視器。在這個圖片檢視器點選按鈕,可以顯示網路上的圖片。 import tkinter as tk import urllib.request impor

我的Python成長---Day7-字元編碼和檔案處理part1

儲備知識點:     1. 計算機系統分為三層:         應用程式         作業系統         計算機硬體     2. 執行python程式的三個步驟         1. 先啟動python直譯器         2. 再將python檔案當作

我的Python成長---Day9-檔案處理的補充和Python中的函式基礎使用

=============================================檔案處理補充============================================ 一、檔案內指標的移動 大前提:檔案內指標的移動是Bytes為單位的,唯獨t模式下

ApolloStudio高手(8):用Python呼叫.Net(C#、VB.Net等)開發的動態連結庫(DLL庫檔案)實現相互協作

ApolloStudio是基於.Net與Python雙架構下的實現,這樣的架構體系使得其具有傳統定製軟體無法比擬的超強拓展性,在本文中我們將介紹這兩者是如何在ApolloStudio平臺上實現優勢互補的。由於在ApolloStudio中使用的更易學習的Python作為主導指令碼語言,這裡我們將介

小白python爬蟲——對字符串的處理

dword put AC class div www IT num hang 對字符串的處理分類:分段,連接,剔除,提取,綜合 連接:+,* +(加法)的使用 a=‘i‘ b=‘ love‘ c=‘ you‘ print(a+b+c) #return i love you