問題の説明
最近、友人が仕事で、このような問題が発生し、次のように、彼女は毎日してExcelスプレッドシートのグループを対処しなければならない:各テーブルに一枚だけ、表の見出しとテーブルのヘッダーの最初の2幕の最後の行を、表には、関係者に署名して。究極の目標は、形作り、Excelスプレッドシートに、各テーブルの内容をマージすることです。私に相談せずに、彼女の前に、このタイプの動作をコピー&ペーストする毎日は彼女の時間のほとんどを占めています。表のスタイルは、次のように:
二つの分析を必要とします
彼女の説明によると、最終需要はこれをすべきである:テーブルのこのグループの新しいタイトルとテーブルのヘッダとしてテーブルの最初の2つのラインのいずれかを選択し、2行は、名前付きインサートネストされた内容のリストを形成しますデータ空のリスト。空白行の内容を削除、各テーブルの最後から二番目の行を取る3。サブリストの方法のすべてのテーブルの内容が順次データリストに挿入されます。子リストデータリストを挿入するように最後の行のテーブルのいずれかを取ります。最後に、新しいExcelスプレッドシートに書き込まれたデータの内容のリスト。
三つのデータアクセス
オンライン検索の数分することにより、以下の結論:
- 3.1倍の需要がxlrdとxlsxwriterモジュールによって解決することができます。
- 3.2ので、xlrdとxlsxwriterを使用する理由:xlrd良いが、大規模な書き込みExcelスプレッドシートしませんエラーにxlsxwriterでの書き込みに適していないExcelファイルを読み込みます。
コーディング四
ガイドとして現在の問題を解決するために、すべては先に行ってきました。コーディング... ...
#- * -コーディング:UTF-8 - * - 輸入OS、xlrd、xlsxwriter source_dir = R ' 入力' new_execl = " 全てone.xlsxにおける" raw_excels = os.listdir(のsource_dir) キーワード = 「ガソリンスタンドマネージャ」 #このキーワードを含むインター行が挿入されている データ= [] ファイル名 = os.path.join(のsource_dir、raw_excels [0]) WB = xlrd.open_workbook(ファイル名) シート = wb.sheets()[0] data.append(sheet.row_values(0)) data.append(sheet.row_values( 1 )) 以下のためのエクセルでraw_excels: ファイル名 = os.path.join(のsource_dir、エクセル) WB = xlrd.open_workbook(ファイル名) シート = wb.sheets()[0] 用 ROW_NUM における範囲(2 、sheet.nrows)。 row_values = [STR(I)のために I におけるsheet.row_values(ROW_NUM)] 場合(LEN ''(row_values).join)及び(キーワードしない で '' .join(row_values))。 data.append(sheet.row_values(ROW_NUM)) data.append(sheet.row_values(sheet.nrows -1 )) new_wb = xlsxwriter.Workbook(new_execl) ワークシート = new_wb.add_worksheet() フォント = new_wb.add_format({ " FONT_SIZE ":11 }) のための I における範囲(LEN(データ)) のために、J における範囲(LEN(データ[I])): worksheet.write(I、J、データ[I]、[J]、フォント) new_wb.close()
時間半後に、あなたは完了です。
ステートメントファイブ使用
- 5.1ダウンロードとPython3.Xをインストールします(インストール手順は、自分のためにチェックしてください)。
- 5.2インストールxlrdとxlsxwriterモジュール
pip install xlrd xlsxwriter
コマンド:。ピップは、この手順を開始する前に、特定のコマンドは、アップグレードコピー&ペーストするようメッセージが表示されますアップグレードする必要があるかもしれません。 - 5.3入力ファイルという名前の新しいフォルダを作成し、このフォルダにマージするファイルをコピーします。
- 以上の5.4は、後に、マウスをダブルクリックし、入力レベルのフォルダと同じフォルダに保存されたファイル名のexcels_merge.pyにコードをコピーします。何の関連性を開き、アドレスバーのエクスプローラで「CMD」がない場合は、入力し、コマンドウィンドウを開きます
python excels_merge.py
。one.xlsxのすべては、合併後の新しいExcelファイルを生成することです。
シックス概要
- 6.1
[str(i) for i in sheet.row_values(row_num)]
主に文字列を変換するために実装されたコードリストの次のラインのために、文字列に要素のリスト内の結束を達成するために、コードのこの部分。 - 6.3このスクリプトのソースのExcelファイルにはすべての操作が、使いやすさを行いません。
- 6.4上記のスクリプトは、あまりにも多くのデータが最適化を考慮することが予想される場合、将来のために最適化されていない、我々はより多くの提案や提言を願って書かれた手です。
- 6.5のソースコードは、私の同名CSDNのブログにアクセスし、GitHubのを得ることができます。
- 世間の注目は、キャンプ番号Pythonコミュニティ他の関連する記事を喜ば注力していきます!