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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

486閲覧

エクセルデータを式ではなく数値として取得したい

o_green0717

総合スコア10

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/07/17 15:02

前提・実現したいこと

xlsx形式のデータを式ではなく数値としてPythonにインポートし、1×2行列を作りたいです。
インポートしたいエクセルデータは、sheet_2というワークシートのセルA1とB1の値です。セルA1は別のワークシート'sheet_1'のセルA1の値を参照しています。sheet_1のセルA1には

A1 = 1

を代入しており、sheet_2のセルA1とB1には

A1 = sheet_1!A1
B1 = A1 * 2

と入力しているので、以下の実行結果が出てくることを期待しています。

[1, 2]

しかし、printを使うと

['=sheet_1!A1', '=A1*2']

数値ではなく式が返されてしまいます。コードの詳細は以下に示しますので、アドバイスをお願いします。

該当のソースコード

ソースコード: import openpyxl as px import numpy as np wb = px.load_workbook('python_to_excel_output_test1.xlsx') #エクセルファイルを読み込む print(wb) #ワークブックを表示する print('\n') #改行する ws = wb['sheet_2'] #シートを取得する print(ws) #ワークシート名を表示する print('\n') #改行する print([ws['A1'].value , ws['B1'].value]) #セルA1とB1の値を表示する 実行結果: <openpyxl.workbook.workbook.Workbook object at 0x000001BA87525D68> <Worksheet "sheet_2"> ['=sheet_1!A1', '=A1*2']

補足情報(FW/ツールのバージョンなど)

開発環境はPython3.7です。
モジュール'openpyxl'は2.6.1、'numpy'は1.15.4です。

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

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

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

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

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

guest

回答1

0

ベストアンサー

以下のようにして、データの値のみを取得する形にしたいということでしょうか...?

python

1wb = px.load_workbook('python_to_excel_output_test1.xlsx', data_only=True)

投稿2019/07/17 15:08

bamboo-nova

総合スコア1408

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

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

o_green0717

2019/07/21 09:51

できました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問