質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
openpyxl

openpyxlは、Excel2007以降のファイル(xlsx/xlsm/xltx/xltm)を読み書きするためのPythonライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

4058閲覧

ブック共有が設定されたファイルをopenpyxlで書き込み→保存すると共有が解除されてしまう

nto

総合スコア1438

openpyxl

openpyxlは、Excel2007以降のファイル(xlsx/xlsm/xltx/xltm)を読み書きするためのPythonライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/03/08 07:02

編集2020/03/08 07:08

共有化されたブックの共有が解除されてしまいます。

tkinter、openpyxlを使用して作成した外部ツールでExcelに書き込み→saveを行うとブックの共有設定が解除されてしまいます。

書き込み→保存の一連の流れで、どのタイミングで解除されているのかはわかりません。

Python

1 def data_save(self, data_box): 2 wb = px.load_workbook(self.excel_path) 3 ws = wb['Sheet1'] 4 rw = ws.max_row 5 align = Alignment(horizontal='center', vertical='center') 6 border = Border(top=Side(style='double', color='CC0033'), 7 bottom=Side(style='double', color='CC0033'), 8 left=Side(style='double', color='CC0033'), 9 right=Side(style='double', color='CC0033')) 10 r=1 11 for dt in data_box: 12 n=1 13 for d in dt: 14 tmp = ws.cell(row=rw+r, column=n) 15 tmp.value=d 16 tmp.border = border 17 if n != 5: 18 tmp.alignment = align 19 if n == 5: 20 tmp.alignment = Alignment(vertical='center') 21 if n == 4: 22 tmp.number_format = '#,##0' 23 if n == 1: 24 tmp.number_format = 'm/d' 25 n+=1 26 r += 1 27 try: 28 wb.save(self.excel_path) 29 messagebox.showinfo('success', 'Register finished') 30 self.root.destroy() 31 except: 32 messagebox.showerror('error','Register failed')

この部分に関してはやや雑なコーディングとなっておりますが
なにか思い当たる節や行った方がよい処理等ありましたらアドバイス頂けると助かります。

###環境
windows10
python3.8.1
Excel2016及び2007
使用ファイル.xlsx

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

おそらく、openpyxlが、共有ブック属性をサポートしていないのでは?
読み込んだ時点で、属性が落ちていると思います。

投稿2020/03/08 08:55

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問