6

test.xlsxという名前の Excel ファイルがあるとします。これは 3 つのシートを持つワークブックで、sheet1 はhello1、sheet2 はhello2 、sheet3 はbyeと呼ばれます。

ここで、ファイルを読み取り、同じファイルを書き直したいのですが、hello2 という名前のシートの (列 B、行 11) と bye という名前のシートの (列 D、行 14) の値のみを変更します。 . そこに与えたい値は、それぞれ 'test' (文字列) と 135 です (つまり、シート hello2 に test を書き、シート bye に 14 を書きます)。

なぜ私がこのような奇妙な質問をしているのか不思議に思われるかもしれませんが、基本的に私は次のスキル/知識のいくつかを習得しようとしています:

  • Python を使用してワークブックを読み、次に Excel ファイルの特定のシートを読み込めるようにする
  • Pythonを使用して特定の位置でExcelシートに書き込むことができるようにする

注:参考までに、Redhatサーバーで任意のバージョンのpythonを使用できます.Excelファイルは私のMacで生成され、Excel for Mac 2011.バージョン14.0.1を使用してxlsx形式で保存され、次にExcelファイルをredhatサーバーにコピーしました.

4

1 に答える 1

11

xlwtxlrd、およびモジュールを使用することをお勧めしxlutilsます (ここで見つけることができます: python-excel.org )。

xlrdxlwtおよびxlutilsを使用xlrdしてブックを読み取り、 を使用xlutilsして書き込み可能なコピーを作成します。あなたがやっていることはセルに既にある値に依存していないのでxlrd、本を開く以外はまったく使用する必要はありません.

コードの簡単なモックアップは次のようになります。

import xlrd, xlwt
from xlutils.copy import copy

read_book = xlrd.open_workbook("Path/To/Doc", formatting_info=True) #Make Readable Copy
write_book = copy(read_book) #Make Writeable Copy

write_sheet1 = write_book.get_sheet(1) #Get sheet 1 in writeable copy
write_sheet1.write(1, 11, 'test') #Write 'test' to cell (B, 11)

write_sheet2 = write_book.get_sheet(2) #Get sheet 2 in writeable copy
write_sheet2.write(3, 14, '135') #Write '135' to cell (D, 14)

write_book.save("New/File/Path") #Save the newly written copy. Enter the same as the old path to write over
于 2013-08-24T23:02:53.357 に答える