一貫した形式でPythonのマージ、複数のExcelファイルを使用します

問題の説明


 

最近、友人が仕事で、このような問題が発生し、次のように、彼女は毎日して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.pyone.xlsxのすべては、合併後の新しいExcelファイルを生成することです。

シックス概要

  • 6.1  [str(i) for i in sheet.row_values(row_num)]主に文字列を変換するために実装されたコードリストの次のラインのために、文字列に要素のリスト内の結束を達成するために、コードのこの部分。
  • 6.3このスクリプトのソースのExcelファイルにはすべての操作が、使いやすさを行いません。
  • 6.4上記のスクリプトは、あまりにも多くのデータが最適化を考慮することが予想される場合、将来のために最適化されていない、我々はより多くの提案や提言を願って書かれた手です。
  • 6.5のソースコードは、私の同名CSDNのブログにアクセスし、GitHubのを得ることができます。

 

  • 世間の注目は、キャンプ番号Pythonコミュニティ他の関連する記事を喜ば注力していきます!

おすすめ

転載: www.cnblogs.com/pypypy/p/12109625.html