• ベストアンサー

PHPでExcelファイルの入力は可能か?

もし何か情報をお持ちの方がいらっしゃったら、 ご教授いただければと思います。 PHPのプログラムで、Excelに値を入力することが可能かどうかです。 Excelはもう定型が決まっていて、 レイアウトおよび自動計算、ダウンリストでの値の選択など ができなければいけません。 また、複数のシートが設定されています。 このようなExcelファイルに対して、 シートの選択、指定したセルへの値の入力・値の選択、 自動計算の実行 がPHPのプログラムから行うことができるのでしょうか?

  • PHP
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#24096
noname#24096
回答No.2

使ったことがないので参考まで。 PEAR::Spreadsheet_Excel_Writer http://www.go-pear.org/manual/ja/package.fileformats.spreadsheet-excel-writer.php >値の選択、 >自動計算の実行 これはマクロってことですよね? これはちょっと厳しいような気が。。。

donne-moi
質問者

お礼

回答ありがとうございます。 参考のページを見てみたいと思います。

donne-moi
質問者

補足

いろいろと見てみました。 なんだか目的のことができそうな気になってきたのですが・・・。 実は、Excel形式ファイルが元々あって、 その指定されたセルに値を書き込むのが目的なのですが、 全てをPHPから書き出すのは大変そうなので、 元のファイルを開いて、その中に値のみを書き出そうかと思います。 元のファイルの書式等を破壊せずに、 指定したセルに値を書き込むことは可能なのでしょうか? Pearのクラスのマニュアルや、Webで検索して調べてみたのですが、 新しいファイルを書き出すサンプルはあっても 既存のファイルに値を書き込むサンプルはありませんでした。 単純に、$WorkSheet->write や $WorkSheet->writeStringを利用すると 書式等は初期化されてしまうようでした。

その他の回答 (1)

  • mobt
  • ベストアンサー率50% (7/14)
回答No.1

Excel のCSV形式なら既にPHPが専用の関数を用意してくれているので それを使えばいいかと 詳細はfgetcsv fputcsvをみていただければ http://jp.php.net/manual/ja/function.fgetcsv.php http://jp.php.net/manual/ja/function.fputcsv.php

donne-moi
質問者

補足

回答ありがとうございます。 CSVのようなテキスト形式であれば、 fgetcsv , fputcsv もしくは、ファイル関数 でも対応できるのは知っています。 ただ、今回は、マクロも含む形のxlsでした。

関連するQ&A

  • EXCELの入力規則に関して

    EXCEL 2003 で簡単な品物の管理表を作成しています。 例えば、品目としてパソコンがあり、品番としてAとBが有ったとします。 "パソコン"はセルにそのまま表示させ、品番は入力規則でAとBと書かれたセルを参照させ、ドロップダウンリストで選択するような作り方をしています。 このような場合での質問です。 1)入力規則で別シートのセルを参照先とすることはできますか。 2)参照先を作成せずに、ドロップダウンリストを作ることはできますか。(値一覧をセルやデータに内包するような感じです) 3)入力規則を複数のシートにコピーし、片方の値を変更した場合、別シートの同じ入力規則の値も連動して変更させることは出来ますか。 入力規則の機能では作りきれない部分も有るかとは思いますが、なにか良いアイデアがあればご提案いただくと有り難いです。

  • excelで入力規制ドロップダウンがでてこない??

    excel:mac 2001を使用しています。 以前のワークシートでは出来ていたのですが、新しく追加したワークシートではドロップダウンの▼マークがでてこなくなってしまいました。 データ>入力規制→「リスト」を選択→ドロップダウンリスト選択にチェックあり。 元の値に「,」で区切った複数の入力候補を入れてあります。 別の空きセルに入力候補を入れて選択する方法も試しましたが、うまくいきません。 他の設定で、なにか邪魔をしているものがあるのでしょうか?

  • エクセルの入力規則について

    エクセルの入力規則機能について質問があります。 入力値の種類をリストに設定されていて、元の値には”=項目”と記載されています。 項目は別のシートのリストをさしているようで、セルをポップアップするとその別シートの セルの内容が選択できるようになっています。別のシートのリストの項目を削除すると セルをポップアップするとその項目だけ選択できなくなります。 このような機能(”=項目”の定義の仕方)について、どのように設定すればよいか教え て下さい。 よろしくお願いいたします。

  • エクセルの「入力規則」についてお尋ねします。

    エクセル2010です。 あるセルにデータの入力規則を設定します。 条件設定の入力値の種類を「リスト」にし、リストの値は、0,1,2,3と直接指定します。 これで設定したセルにはプルダウンで0,1,2,3を選択するか、直接0~3の数値の入力しかできなくなります。 ここまでは問題ないのですが、このセルにユーザー定義の書式、0"人"を設定して、1は1人と表示されるようにしました。そうすると、直接0~3の数値の入力ははじかれ、プルダウンで0,1,2,3を選択するしか入力ができなくなります。 リストに設定した値を正しく入力しているのに排除されるのはなぜでしょう? いろいろ試し、リストの値を、0,1,2,3と直接指定せず、セル範囲のリスト指定とし、そのセル範囲にもユーザー定義の書式、0"人"を設定しておけばクリアできました。 でも、たかだか数件のリストを指定するのにいちいちリストをワークシート上に作成し、そこにもユーザー定義の書式を設定しなければならないのは腑に落ちません。

  • エクセルで一つのブック上のいくつかのシートのドロップダウンボダンでリスト

    エクセルで一つのブック上のいくつかのシートのドロップダウンボタン のリストで、 3枚のシートの一つのセルに、 一枚目は鈴木  2枚目はたなか  3枚目は佐藤   と同じ書式の同じ場所のセル位置にはいっていてそれをドロップダウンボタンで表示させるのに、リスト→元の値 の欄に、いちいち入力せずにクリックして選択させる方法はありますか? 一つのブックのシートの枚数が多く、同じ書式なのでクリックで選択できればと思い質問しました。 無理ならべつにシートを用意してそこにリストを選択するために、入力するかと。もかんがえていますが、それでは、エクセルの便利な機能を 使いこなしていないかと悩んでいます。 どなたか教えてください。

  • エクセル ドロップダウンリストについて

    Windows エクセル2003SP3を使用しています。 ドロップダウンリスト(入力規則)について質問です。 シート1に  東京  大阪  名古屋 とあり、3つのセルの選択範囲を「地域」と名前をつけました。 で、シート2で、あるセルを選択し、 データ→入力規則→リスト・・・とたどり 「元の値」に「=地域」と入力しました。 すると期待通りのドロップダウンリストが完成。 ためしに「名古屋」を選択しておきます。 で、ここからが質問ですが シート1の選択範囲にある「名古屋」を「福岡」に変えると シート2の表示も変わっているだろう・・・と期待したら変わっていませんでした。 しかし、ドロップダウンリストの中身はきちんと「福岡」になっています。 選択範囲のデータを変更させたら シート2の表示もすべて変更(反映)させることは可能ですか?

  • Excelの入力規則でリストの値を選択できません。

    Excelの入力規則でリストの値を選択できません。 環境:WinXP Excel2003 表内のセルに入力規則でリストを設定しました。 リストは場所指定ではなく、入力規則タブのリスト欄にカンマで区切って直接値を入力しています。 リストの内容はメールアドレス用のドメインです。 ("@docomo.ne.jp,@softbank.ne.jp"というふうにドメインをリストにしています) 表は下記のような作りになっています。 A1セル:アカウント 直接入力 A2セル:ドメイン ドロップダウンリストから選択 ドロップダウンリストは正常に表示されるのですが、値を選択してもセルには何も表示されません。 試しにリストの値を"a,b,c"に変更したら正常に選択・表示されました。 ※添付画像のような状態から値を選択してもセルには何も表示されません 値が選択できないのは何が原因でしょうか? ご教示宜しくお願い致します。

  • Excelでの複数シートへの値の入力

    おはようございます。 Excel2000で複数のシートを選択した状態でセルに値を入力すると、他のシートの同じセルに内容が入力されますよね。 この機能の名称はわかりませんが・・・(^_^;) これをヒントに「フォーム内にあるTextBoxに入力された値を各シートのセルに入力しよう」というVBAのソースを作ってみましたが、 実行してみると選択されている1枚目のシートにしか値が入力されません。 汚いソースをみなさんに見せるのは恥ずかしいのですが、 是非実現したいので、どこが間違っているか指摘をいただけると幸いです。 やろうとしていること: フォームのテキストボックスに値を入力し、 コマンドボタンを押すとシートを複数枚選択し、 各シートのセル”A1”(AからDまでを結合)に値を入力する。 ******************************************* Private Sub CommandButton1_Click() 'テキストボックスの値取得と、店名の合成 Dim myTmei As String Dim myTmei2 As String myTmei = TextBox1.Text myTmei2 = "店名" & myTmei 'シートの選択 Sheets(Array(5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)).Select '値の入力 Range("A1").Select Range("A1").Value = myTmei2 End Sub ****************************************** 結果を見ると、シート自体は選択できているのですが、 その中でも「アクティブになっている(?)シート(1枚目)のセルだけに値を入力しなさいよ。」と書いてしまったようで、 「全てのシートのセル”A1”に入力しなさい。」という部分が書けていないのだと思うのです。 Selectだけじゃ、ダメなのかな・・・ どうかよろしくお願いします。

  • エクセル2000の入力規則で困っています。

    エクセル2000のセルの入力規則で、条件の設定を 入力値の種類が「リスト」、 元の値が、カンマ区切りで  2,3,4,5  としております。 さらに、セルには書式設定で、表示形式が「ユーザー定義」で、0"年" にしてあります。 これで、セルを選択すると、ドロップダウンから 2~5 のいずれかしか選択できなくなり、セルには○年と正しく表示されますが、手入力で2~5の整数を入れようとすると「リストから選択してください」とはじかれてしまいます。 しかし、セルの表示形式が「ユーザー定義」でなければ、手入力でも2~5の整数値を問題なく入れることができます。 セルの書式は、あくまで見かけだけのことで、セルの中は同じ数値データのはずなのにどうしてこうなるのでしょうか? セルに○年を表示させながら、2~5の整数値の手入力を可能にする方法はないでしょうか?

  • Excel 同一フォルダ内の複数ファイルから、指定条件に合致したブックを抽出する

    こんばんわ。早速ですが教えて頂きたいことがあります。 あるフォルダに同様レイアウトの複数ファイルが存在します。 そのファイルは複数シートに分かれています。 3番目のシートの指定セルに値「1」が入力されている場合、 そのファイルを抽出する方法はないでしょうか? (入力されているエクセルがどれかわかるようにしたい) 分かりにくいですが、よろしくお願い致します。

専門家に質問してみよう