Python实现的Excel文件读写类
本文实例讲述了Python实现的Excel文件读写类。分享给大家供大家参考。具体如下:
#coding=utf-8 ####################################################### #filename:ExcelRW.py #author:defias #date:2015-4-27 #function:read or write excel file ####################################################### import xlrd import xlwt import xlutils.copy import os.path class XlsEngine(): """ The XlsEngine is a class for excel operation Usage: xlseng = XlsEngine('filePath') """ def __init__(self,xlsname): """ define class variable """ self.xls_name = xlsname #file name self.xlrd_object = None #workbook object self.isopentrue = False #file open flag def open(self): """ open a xls file Usage: xlseng.open() """ try: self.xlrd_object = xlrd.open_workbook(self.xls_name) self.isopentrue = True print('[%s,%s].'%(self.isopentrue,self.xlrd_object)) except: self.isopentrue = False self.xlrd_object = None print('open %s failed.'%self.xls_name) def info(self): """ show xls file information Usage: xlseng.info() """ if self.isopentrue == True: for sheetname in self.xlrd_object.sheet_names(): worksheet = self.xlrd_object.sheet_by_name(sheetname) print('%s:(%d row,%d col).'%(sheetname,worksheet.nrows,worksheet.ncols)) else: print('file %s is not open.'%self.xls_name) def readcell(self,sheetname='sheet1',rown=0,coln=0): """ read file's a cell content Usage: xlseng.readcell('sheetname',rown,coln) """ try: if self.isopentrue == True: worksheets = self.xlrd_object.sheet_names() if sheetname not in worksheets: print('%s is not exit.'%sheetname) return False worksheet = self.xlrd_object.sheet_by_name(sheetname) cell = worksheet.cell_value(rown,coln) print('[file:%s,sheet:%s,row:%s,col:%s]:%s.'%(self.xls_name,sheetname,rown,coln,cell)) else: print('file %s is not open.'%self.xls_name) except: print('readcell is false! please check sheetn rown and coln is right.') def readrow(self,sheetname='sheet1',rown=0): """ read file's a row content Usage: xlseng.readrow('sheetname',rown) """ try: if self.isopentrue == True: worksheets = self.xlrd_object.sheet_names() if sheetname not in worksheets: print('%s is not exit.'%sheetname) return False worksheet = self.xlrd_object.sheet_by_name(sheetname) row = worksheet.row_values(rown) print('[file:%s,sheet:%s,row:%s]:%s.'%(self.xls_name,sheetname,rown,row)) else: print('file %s is not open.'%self.xls_name) except: print('readrow is false! please check sheetn rown is right.') def readcol(self,sheetname='sheet1',coln=0): """ read file's a col content Usage: xlseng.readcol('sheetname',coln) """ try: if self.isopentrue == True: worksheets = self.xlrd_object.sheet_names() if sheetname not in worksheets: print('%s is not exit.'%sheetname) return False worksheet = self.xlrd_object.sheet_by_name(sheetname) col = worksheet.col_values(coln) print('[file:%s,sheet:%s,col:%s]:%s.'%(self.xls_name,sheetname,coln,col)) else: print('file %s is not open.'%self.xls_name) except: print('readcol is false! please check sheetn coln is right.') def writecell(self,value='',sheetn=0,rown=0,coln=0): """ write a cell to file,other cell is not change Usage: xlseng.writecell('str',sheetn,rown,coln) """ try: if self.isopentrue == True: xlrd_objectc = xlutils.copy.copy(self.xlrd_object) worksheet = xlrd_objectc.get_sheet(sheetn) worksheet.write(rown,coln,value) xlrd_objectc.save(self.xls_name) print('writecell value:%s to [sheet:%s,row:%s,col:%s] is ture.'%(value,sheetn,rown,coln)) else: print('file %s is not open.'%self.xls_name) except: print('writecell is false! please check.') def writerow(self,values='',sheetn=0,rown=0,coln=0): """ write a row to file,other row and cell is not change Usage: xlseng.writerow('str1,str2,str3...strn',sheetn,rown.coln) """ try: if self.isopentrue == True: xlrd_objectc = xlutils.copy.copy(self.xlrd_object) worksheet = xlrd_objectc.get_sheet(sheetn) values = values.split(',') for value in values: worksheet.write(rown,coln,value) coln += 1 xlrd_objectc.save(self.xls_name) print('writerow values:%s to [sheet:%s,row:%s,col:%s] is ture.'%(values,sheetn,rown,coln)) else: print('file %s is not open.'%self.xls_name) except: print('writerow is false! please check.') def writecol(self,values='',sheetn=0,rown=0,coln=0): """ write a col to file,other col and cell is not change Usage: xlseng.writecol('str1,str2,str3...',sheetn,rown.coln) """ try: if self.isopentrue == True: xlrd_objectc = xlutils.copy.copy(self.xlrd_object) worksheet = xlrd_objectc.get_sheet(sheetn) values = values.split(',') for value in values: worksheet.write(rown,coln,value) rown += 1 xlrd_objectc.save(self.xls_name) print('writecol values:%s to [sheet:%s,row:%s,col:%s] is ture.'%(values,sheetn,rown,coln)) else: print('file %s is not open.'%self.xls_name) except: print('writecol is false! please check.') def filecreate(self,sheetnames='sheet1'): """ create a empty xlsfile Usage: filecreate('sheetname1,sheetname2...') """ try: if os.path.isfile(self.xls_name): print('%s is exit.'%self.xls_name) return False workbook = xlwt.Workbook() sheetnames = sheetnames.split(',') for sheetname in sheetnames: workbook.add_sheet(sheetname,cell_overwrite_ok=True) workbook.save(self.xls_name) print('%s is created.'%self.xls_name) except: print('filerator is false! please check.') def addsheet(self,sheetnames='sheet1'): """ add sheets to a exit xlsfile Usage: addsheet('sheetname1,sheetname2...') """ try: if self.isopentrue == True: worksheets = self.xlrd_object.sheet_names() xlrd_objectc = xlutils.copy.copy(self.xlrd_object) sheetnames = sheetnames.split(',') for sheetname in sheetnames: if sheetname in worksheets: print('%s is exit.'%sheetname) return False for sheetname in sheetnames: xlrd_objectc.add_sheet(sheetname,cell_overwrite_ok=True) xlrd_objectc.save(self.xls_name) print('addsheet is ture.') else: print("file %s is not open \n"%self.xls_name) except: print('addsheet is false! please check.') """ def chgsheet(self,sheetn,values): def clear(self): """ if __name__ == '__main__': #初始化对象 xlseng = XlsEngine('E:\\Code\\Python\\test2.xls') #新建文件,可以指定要新建的sheet页面名称,默认值新建sheet1 #print("\nxlseng.filecreate():") #xlseng.filecreate('newesheet1,newesheet2,newesheet3') #打开文件 print("xlseng.open():") xlseng.open() #添加sheet页 print("\nxlseng.addsheet():") xlseng.addsheet('addsheet1,addsheet2,addsheet3') #输出文件信息 print("\nxlseng.info():") xlseng.info() #读取sheet1页第3行第3列单元格数据(默认读取sheet1页第1行第1列单元格数据) print("\nxlseng.readcell():") xlseng.readcell('sheet1',2,2) #读取sheet1页第2行的数据(默认读取sheet1页第1行的数据) print("\nxlseng.readrow():") xlseng.readrow('sheet1',1) #读取sheet1页第3列的数据(默认读取sheet1页第1列的数据) print("\nxlseng.readcol():") xlseng.readcol('sheet1',2) #向第一个sheet页的第2行第4列写字符串数据‘I am writecell writed'(默认向第一个sheet页的第1行第1列写空字符串) print("\nxlseng.writecell():") xlseng.writecell('I am writecell writed',0,1,3) #向第一个sheet页写一行数据,各列的值为‘rowstr1,rowstr2,rowstr3',从第3行第4列开始写入(默认向第一个sheet页写一行数据,值为‘',从第1行第1列开始写入) print("\nxlseng.writerow():") xlseng.writerow('rowstr1,rowstr2,rowstr3',0,2,3) #向第一个sheet页写一列数据,各行的值为‘colstr1,colstr2,colstr3,colstr4',从第4行第4列开始写入(默认向第一个sheet页写一列数据,值为‘',从第1行第1列开始写入) print("\nxlseng.writecol():") xlseng.writecol('colstr1,colstr2,colstr3,colstr4',0,3,3)
希望本文所述对大家的Python程序设计有所帮助。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

VSコードはMacで利用できます。強力な拡張機能、GIT統合、ターミナル、デバッガーがあり、豊富なセットアップオプションも提供しています。ただし、特に大規模なプロジェクトまたは非常に専門的な開発の場合、コードと機能的な制限がある場合があります。
