Excelに大量のデータをエクスポートするのpythonを使用する方法

製品より転載は少しライブラリです  http://www.pinlue.com/article/2020/04/0210/1610100837708.html

問題の説明(1):優れた表示データにするために、エクセルデータのファイル形式は、多くの場合、テキストファイルよりも有利であるが、特定のpythonに、どのようにデータをエクスポートするExcelにそれ?あなたは、大量のデータをエクスポートする必要がヒットし、それがどのように動作しない場合は?本稿では、この2つの問題を解決します。

PS注:多くの人々は、Pythonのプロセスがあきらめるのは簡単に答える助けに誰も、心配するさまざまな問題が発生します学びます。パキスタンと5(デジタル同音異義語)から7 Yiyiの9戯曲下の変換を見つけることができますが、古いドライバが解決する問題を持っていない、最新のPythonチュートリアルのプロジェクトでもあります:小さなシリーズはPythonのフルスタックの無料Q&スカート建てこのため、あなたが一緒に進行を監督,,お互いに一緒に取得することができます!

(2)以下の工程:

1.最初のステップは、インストールopenpyxl、

使用すると、openpyxl缶をインストールしますが、バージョンは2.2.6である窓にインストールされていますが、CentOSのバージョン4.1が自動的にインストールされているPIP

コードは、Windowsの下で何の問題を実行しないように書かれていますが、CentOSの上で与えられていた、問題が解決され、私の237サーバー上のEW = ExcelWriter(ワークブック= WB)少なくとも一つの引数なので、決定的2.2.6バージョンがインストール言います。

ピップインストールopenpyxl == 2.2.6

2.第二段階は、ハハ、何の友人は、直接コード、PSに、ナンセンスを話していないコードがxlwtとopenpyxlの2つのバージョンが含まれて実装されていません。

(3)さらに読書:情報へのアクセスまでは、以下の点にまとめ、オンラインの意見が見つかりました:

PythonのExcelの操作に関連するモジュール11bが2つのグループを有するxlrd、xlwt、xlutilsであり、別のグループは、openpyxlあります

しかし、古い、Excelのみ97-2003またはExcel 97の以前のバージョン生成されたExcelファイルをXLS形式で扱うことができ前者のグループ(xlrd、xlwt)は、xlwtも、一般的には、このフォーマット07エクセル、Excelファイルの以降のバージョンをサポートしていません最大は256のまたはExcelファイル65536行をサポートすることができます。

大量のデータの顔がケースをExcelにエクスポートする必要があるので、あなたはので、エクセル2007+ XLSX / XLSMフォーマットのサポートのため、このような使用openpyxl- CSVファイル2)として保存するように、1)は、異なる形式で保存されている以下の3つのオプションを持っています処理3)のWin32 COM(Windowsのみ)

もちろん、我々はユーザーに優れたディスプレイ製品およびデータへの順序で、困難に直面している、我々はまだ二を選択します。

psのは、非常に幸運、いくつかは、私がopenpyxl、サポートエクセル07+を発見し、メンテナンスの誰かを持って検索した後、ドキュメント見やすく、チュートリアルやAPIドキュメントを参照すると、すぐに使い始めることができるようになり、これはそれであります -

[20180713の追加PS、次のコード__version__ openpyxl = '2.2.6' と__version__ =のopenpyxlは、 '2.4.8' の試験がために、最新バージョンのopenpyxlが__version__ = '2.5.4' です考慮して、渡しますPythonの動作例エクセルの最新バージョン

さらに騒ぎがなければ、直接コード(4)は、参照してください

#のコード:UTF-8

「」」

#私たちは、私が質問をするために彼をしたいと思い、ハを助けたいです

yaoyzによって作成

日付:2017年1月24日

「」」

importxlrd

importxlwt

#ワークブック関連

fromopenpyxl.workbookimportWorkbook

#ExcelWriter、非常に強力なパッケージの書き込みExcel関数

fromopenpyxl.writer.excelimportExcelWriter

#Eggache手紙メソッドに数字の列

fromopenpyxl.utilsimportget_column_letter

fromopenpyxl.reader.excelimportload_workbook

classHandleExcel():

「」「エクセル操作の関連するクラス」「」

def__init __(自己):

セルフ。head_row_labels = [U '学生のID ' U '学生の名前'、U' 連絡先 ' U' 知識ID ' U' 知識名「]

「」」

関数:

、txtファイル内の各レコードを読んで、リストに保存します

PARAM:

ファイル名:ファイル名が読み出されます

戻り値:

返されたレコードのリスト:res_list

「」」

defread_from_file(自己、ファイル名):

res_list = []

file_obj =オープン(ファイル名、 "R")

forlineinfile_obj.readlines():

res_list.append(ライン)

file_obj.close()

returnres_list

「」」

関数:

、* .xlsx形式の中で各レコードを読むリターンdata_dicに保存

PARAM:

excel_name:ファイル名を読み出すために、

戻り値:

辞書には、レコードを返さ:data_dic

「」」

defread_excel_with_openpyxl(自己、excel_name = "testexcel2007.xlsx"):

#読むexcel2007ファイル

WB = load_workbook(ファイル名= excel_name)

#どのように多くのテーブルを表示します

"ワークシートの範囲(複数可):" 印刷、wb.get_named_rangesを()

"ワークシート名(複数可):" 印刷、wb.get_sheet_namesを()

#最初のテーブルを取ります

sheetnames = wb.get_sheet_names()

WS = wb.get_sheet_by_name(sheetnames [0])

#テーブル名、テーブルの行、表の列の数を表示します

印刷 "ワークシートTitile:"、ws.title

)、ws.get_highest_row(: "ワークシートの行の" 印刷

)、ws.get_highest_column(: "ワークシートColsは" を印刷します

#読みなさいExcelのスプレッドシート行数、列数

ROW_NUM = ws.get_highest_row()

col_num = ws.get_highest_column()

"ROW_NUM:" を印刷し、ROW_NUM "col_num:"、col_num

#データディクショナリを保存するために設立

data_dic = {}

記号= 1

#データ辞書に保存されています

forrowinws.rows:

temp_list = []

#プリント「行」、行

forcellinrow:

printcell.value、

temp_list.append(cell.value)

「」印刷

data_dic [記号] = temp_list

記号+ = 1

printdata_dic

returndata_dic

「」」

関数:

、* .xlsx形式の中で各レコードを読むリターンdata_dicに保存

PARAM:

レコードは:、各レコードを含むリストを保存します

save_excel_name:ファイル名として保存

head_row_stu_arrive_star:

戻り値:

辞書には、レコードを返さ:data_dic

「」」

defwrite_to_excel_with_openpyxl(自己、レコード、head_row、save_excel_name = "save.xlsx"):

#新しいブックを作成します。

WB =ブック()

#excelWriterを作成します。

EW = ExcelWriter(ブック= WB)

#出力パスとファイル名を設定します。

dest_filename = save_excel_name.decode( 'UTF-8')

#最初のシートは、WSであります

WS = wb.worksheets [0]

#WSの名前を設定します。

ws.title =「範囲名」

#最初の行を記述し、ヘッダー行

forh_xinrange(1、郡(head_row)+1):

h_col = get_column_letter(H_X)

#print h_col

ws.cell( '%S%S' %(h_col、1))。値= '%s' は%(head_row [H_X-1])

#これらの行に二行目以降を書きます

私は= 2

forrecordinrecords:

record_list = STR(レコード).strip()。スプリット( "\ T")

forxinrange(1、lenは(record_list)+1):

COL = get_column_letter(X)

ws.cell( '%S%S' %(COL、I))。値= '%s' は%(record_list [X-1] .decode( 'UTF-8'))

I + = 1

#書き込みファイル

ew.save(ファイル名= dest_filename)

「」」

関数:

エクセルコンテンツテスト出力

読むExcelファイル

PARAM:

excel_name:Excelファイルの名前を読むには

戻り値:

ノー

「」」

defread_excel(自己、excel_name):

ブック= xlrd.open_workbook(excel_name)

printworkbook.sheet_names()

#すべてのシートをゲット

printworkbook.sheet_names()#[u'sheet1' 、u'sheet2' ]

sheet2_name = workbook.sheet_names()[1]

#シート取得シートの内容またはインデックス名に従って

シート2 = workbook.sheet_by_index(1)#シートインデックスは0から始まります

Sheet2の= workbook.sheet_by_name( 'シート1')

名前#シート、行数、列

printsheet2.name、sheet2.nrows、sheet2.ncols

値の#取得し、全行と列(配列)

行= sheet2.row_values(3)#GET四行目の内容

COLS = sheet2.col_values(2)#コンテンツ第3列を取得します

printrows

printcols

セルの内容を取得する#

printsheet2.cell(1,0).VALUE

printsheet2.cell_value(1,0)

printsheet2.row(1)[0] .VALUE

セルの内容のデータ型を取得#

printsheet2.cell(1,0).ctype

#名前によって得られます

returnworkbook.sheet_by_name(u'Sheet1' )

「」」

関数:

設定されたセルのスタイル

PARAM:

名前:フォントの名前

高さ:フォントの高さ

太字:大文字

戻り値:

スタイル:バックセット形式のオブジェクト

「」」

defset_style(自己、名前、高さ、大胆=偽):

スタイル= xlwt.XFStyle()#の初期のスタイル

フォント= xlwt.Font()#は、フォントスタイルを作成します。

font.name =名前# 'のTimes New Roman'

font.bold =太字

font.color_index = 4

font.height =高さ

国境= xlwt.Borders()

borders.left = 6

borders.right = 6

borders.top = 6

borders.bottom = 6

style.font =フォント

style.borders =ボーダー

returnstyle

「」」

関数:

計算結果から変更された設定に応じてセルスタイルは、Excel TXTとして記憶されます

PARAM:

データセット:結果データを保存するには、リスト記憶

戻り値:

Excelオブジェクトに結果を保存します

「」」

defwrite_to_excel(自己、データセット、save_excel_name、head_row):

F = xlwt.Workbook()#は、ワークブックを作成します。

#最初のシートを作成します。

#シート1

カウント数= 1

シート1 = f.add_sheet(u'sheet1' 、cell_overwrite_ok = TRUE)#创建シート

#タイトルの最初の行:

forpinrange(LEN(head_row)):

sheet1.write(0、P、head_row [P]、self.set_style( 'のTimes New Roman'、250、真))

デフォルト= self.set_style( 'のTimes New Roman'、200、偽)#は、ループの意志の仕事外のスタイルを定義します

forlineindataset:

ROW_LIST = STR(ライン).strip( "\ n")。スプリット( "\ T")

forppinrange(LEN(文字列(行).strip( "\ n" は)スプリット( "\ T"))。):

sheet1.write(数、PP、ROW_LIST [頁] .decode( 'UTF-8')、デフォルト)

カウント+ = 1

ファイルの保存f.save(save_excel_name)#

defrun_main_save_to_excel_with_openpyxl(自己):

「テストの読み取りとExcelファイル2007を書き込み、XLSX超えて、ファイルに書き込まれ、より多くのデータを容易にするために、」印刷

「1. txtファイルには、リストオブジェクトを格納するためのメモリに読み込まれる」印刷

dataset_list = self.read_from_file( "test_excel.txt")

「」「EXCEL 2007を処理するためのテスト用openpyxl」「」

「Excelのスプレッドシートにファイルを書き込むこと2.」を印刷します

head_row_label = self.head_row_labels

SAVE_NAME = "test_openpyxl.xlsx"

self.write_to_excel_with_openpyxl(dataset_list、head_row_label、SAVE_NAME)

「3.タスクのtxtファイル形式Excelファイル保存、終了する。」印刷

defrun_main_save_to_excel_with_xlwt(自己):

「4. txtファイルには、リストオブジェクトを格納するためのメモリに読み込まれる」印刷

dataset_list = self.read_from_file( "test_excel.txt")

「」「EXCEL 97-2003を処理するためのテスト用xlwt」「」

印刷「5.ファイルは、Excelスプレッドシートに書き込まれます。」

head_row_label = self.head_row_labels

SAVE_NAME = "test_xlwt.xls"

self.write_to_excel_with_openpyxl(dataset_list、head_row_label、SAVE_NAME)

「6.タスクのtxtファイル形式Excelファイル保存、終了する。」印刷

if__name__ == '__ MAIN__':

印刷「ハンドルExcelオブジェクトを作成します」

obj_handle_excel = HandleExcel()

#Openpyxlは、ファイルとxlwtに書き込みデータに使用されました

obj_handle_excel.run_main_save_to_excel_with_openpyxl()

obj_handle_excel.run_main_save_to_excel_with_xlwt()

「」「」「テスト読み出しファイルノートopenpyxlのXLSファイルを読み取ることがないかもしれない、とxlrd XLSX形式のファイルが読み込まれないことがあり」

#obj_handle_excel.read_excel_with_openpyxl( "testexcel2003.xls")#错误写法

#obj_handle_excel.read_excel_with_openpyxl( "testexcel2003.xls")#错误写法

obj_handle_excel.read_excel( "testexcel2003.xls")

obj_handle_excel.read_excel_with_openpyxl( "testexcel2007.xlsx")

これらは、共有の時間ですそれについて理解できますか?

 

当社は60元の記事に公開 ウォンの賞賛58 。・ 見解を14万+を

おすすめ

転載: blog.csdn.net/yihuliunian/article/details/105310605