Python中Excel各種操作與常見問題

文章簡單的介紹了關于Python中Excel各種操作與常見問題,有需要的朋友可以參考一下。

模塊介紹:


xlrd 0.7.5 下載地址:http://pypi.python.org/pypi/xlrd 文檔地址:https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html

xlwt 0.7.3 下載地址:http://pypi.python.org/pypi/xlwt 文檔地址:https://secure.simplistix.co.uk/svn/xlwt/trunk/xlwt/doc/xlwt.html

模塊安裝:


分別將tar.gz文件包解壓,在cmd命令行窗口,進入到xlrd或xlwt,運行python setup.py install。前提是系統變量Path中已添加C:Python26。
現進入Python解釋器,import xlwt,正常無報錯。import xlrd,卻

代碼如下
>>> import xlrd
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:Python26Libsite-packagesxlrd__init__.py", line 4, in <module>
__VERSION__ = open(path.join(path.dirname(__file__), 'version.txt')).read().
strip()
IOError: [Errno 2] No such file or directory: 'C:\Python26\lib\site-packages
xlrd\version.txt'

很明顯,是文件version.txt不存在所致。打開"C:Python26Libsite-packagesxlrd__init__.py"文件,將第四行的__VERSION__ = open(path.join(path.dirname(__file__), 'version.txt')).read().strip()注釋掉,新增一行爲__VERSION__ = '0.7.4',現在import xlrd,就正常無報錯。

源代碼中的第四行是讀取版本號,而該模塊版本號在第16行進行了描述,參照C:Python26Libsite-packagesxlwt__init__.py文件,即可解決此問題

一 讀取excel

這裏介紹一個不錯的包xlrs,可以工作在任何平台。這也就意味著你可以在Linux下讀取Excel文件。

首先,打開workbook;

代碼如下
import xlrd
wb = xlrd.open_workbook('myworkbook.xls')

檢查表單名字:

代碼如下
wb.sheet_names()

得到第一張表單,兩種方式:索引和名字

代碼如下
sh = wb.sheet_by_index(0)
sh = wb.sheet_by_name(u'Sheet1')

遞歸列印出每行的信息:

代碼如下
for rownum in range(sh.nrows):
print sh.row_values(rownum)

如果只想返回第一列數據:

代碼如下
first_column = sh.col_values(0)

通過索引讀取數據:

代碼如下
cell_A1 = sh.cell(0,0).value
cell_C4 = sh.cell(rowx=3,colx=2).value

注意:這裏的索引都是從0開始的。

二 寫excel


這裏介紹一個不錯的包xlwt,可以工作在任何平台。這也就意味著你可以在Linux下保存Excel文件。

基本部分

在寫入Excel表格之前,你必須初始化workbook對象,然後添加一個workbook對象。比如:

代碼如下
import xlwt
wbk = xlwt.Workbook()
sheet = wbk.add_sheet('sheet 1')

這樣表單就被創建了,寫入數據也很簡單:

代碼如下
# indexing is zero based, row then column
sheet.write(0,1,'test text')

之後,就可以保存文件(這裏不需要想打開文件一樣需要close文件):
wbk.save('test.xls')

深入探索

worksheet對象,當你更改表單內容的時候,會有警告提示。

代碼如下
sheet.write(0,0,'test')
sheet.write(0,0,'oops')

# returns error:
# Exception: Attempt to overwrite cell:
# sheetname=u'sheet 1' rowx=0 colx=0

解決方式:使用cell_overwrite_ok=True來創建worksheet:

代碼如下
sheet2 = wbk.add_sheet('sheet 2', cell_overwrite_ok=True)
sheet2.write(0,0,'some text')
sheet2.write(0,0,'this should overwrite')
更多相關文章
  • PHP中連接SQLServer2005代碼與常見問題
    本文章介紹了 PHP中連接SQLServer2005代碼與常見問題,大家可參考.連接前配置
  • windows 8.1 update 更新了不少的東西了,下面我來總結一下Windows 8.1 Update新功能與Update (KB2919355)常見問題答,希望對各位有幫助.Windows 8.1 Update新特性1. 當打開一個modern app時,任務欄還會顯示嗎?答:當moder
  • Yoga平板電腦是聯想推薦的一款娛樂平板電腦了,此款平板使用的操作系統:Android4.2了,下面本文章整理了對于剛入手Yoga平板的一些常見問題與解決方案.Yoga平板是否可以與投影儀連接因爲Yoga平板B600
  • 現在浏覽器越來越多了,兼容性也特別複雜,下面我收藏了css與javascript中浏覽器兼容常見問題總結,有需要的朋友可參考一下.突然間,在Chrome下看起來很整齊的布局,在IE下變成一團糟.爲了找出原因,我改動了div的background-color屬性.最後,發現同一個DIV的寬度在IE和C ...
  • iphone手機升級iOS 9後遇到的常見問題介紹
    iphone手機升級iOS 9後遇到的常見問題估計有很多了,今天我們一起來看小編整理的一篇
  • 這些給大家介紹在使用Sencha ExtJS碰到一些問題總結,包括有form 表單提交失敗,ExtJS 限制text最大字符數, Ajax 提交SESSION失效的問題等等問題.最近一直在使用Sencha進行前端開發
  • 騰達(Tenda)路由器P1000常見問題解答整理了大量在使用p1000路由器時碰到的問題與解決方法,希望例子能給各位朋友帶來一些幫助哦.本文檔提供一些常見問題及解決方法,閱讀它能幫助您解決一些遇到的難題.如果您不能
  • ajaxValidator 常見問題解決(傳參,中文亂碼)以下是作者對ajaxValidator的聲明:ajaxvalidator是大家問的最多的問題,修正一個bug(感謝網友“じ??w√”),並把大家最關心的問題,再做一次闡述.bug現象:無論校驗有沒有校驗通過,當控件再次得到焦點而再次失去焦點的 ...
一周排行
  • 下面用php實現了一個對css進行壓縮和解壓縮的小程序,暫不適用于js的操作.通過這個案例可以學習php字符替換和正則替換的技術.將css代碼壓縮能夠減小文件的體積,從而減小了網路傳輸量和帶寬占用,減小了伺服器的處理 ...
  • 文章來給各位介紹一下Java多線程中的wait與notify,notifyall例子,希望文章能給各位朋友帶來幫助哦.在Java多線程編程中,wait()的作用的是讓當前線程進入阻塞狀態,notify()是讓當前線程 ...
  • php+js處理大量input輸入框與表單提交獲取問題
    表單提交是開發中常用的一些功能了,但是有時我們對于有些客戶的要求一個頁面能寫出100個in ...
  • 今天發現數據庫中有一些數據亂了我需要做一個臨時表來存儲數據,我們根據條件來把指定ID的數據保存到臨時表,然後進行數據替換操作,但在使用select into from中發現許多的問題,下面我把整理個過程與大家分享一下
  • preg_match正則匹配的字符串中會出現一些問題,下面我來給大家介紹一下怎麽來解決長字符串時出現錯誤觀點的解決辦法.例preg_match_all正則匹配字符串所有連接地址 代碼如下 $str ='<a h ...
  • Centos7版本的linux已經發布到7.0了,本文我們來看看在Centos7的伺服器上如何安裝nginx+mysql+php環境.一.概述專案的需要,今天在虛擬機上基于Centos安裝配置了伺服器運行環境,web ...
  • 蘋果iPhone6與iTunes同步方法
    iPhone6怎麽連接iTunes?這個問題其實很簡單只要在電腦打開itunes然後在手機
  • 由于checkbox特殊性所以我們要獲取它的值,在很我語言中都不一樣的,在php教程 以我們是以數組形式來處理,並且利用遍曆他的值,下面有大量實例.<html><head><title& ...
  • 當訪問啓用SSL資源的時候,會出現\"did you forget to enable it when you configured PHP\"錯誤提示,從提示我們可以看出肯定是php.ini中沒 ...
  • 暖暖環遊世界280糖果之家S怎麽通關西班牙糖果之家S搭配教程
    暖暖環遊世界280糖果之家S怎麽通關?既然是講到了西班牙糖果之家那麽我們肯定需要以粉色爲主