none
Excel2003を使用していたアプリケーションを2007or2008に移行したい RRS feed

  • 質問

  • VS.Net2003で作成したアプリ(WindowsXP上で実行)で、EXCELシートの読込み・書込み等を行っています。
    しかし、最近データ量が増え、行数が65536行を超えています。

    データベースの使用等が望ましいのですが、
    現状、アプリを修正しない方向で検討しています。

    EXCEL2007以降では、65536行を超える行を扱えるようですが、
    どのように移行したら良いのでしょうか?

    わからないことは、
    ・EXCEL2007の入ったPCで再コンパイルする必要がある?
    ・アプリを実行するPCにEXCEL2007を入れるだけで良いか?
    ・EXCEL.EXEを手動で上書きする手順が必要か?
    などです。
    他にもアドバイス等あるようでしたら頂きたいです。

    宜しくお願い致します。
    2009年3月9日 7:05

回答

  • 理屈的にはアプリを実行するPCにEXCEL2007を入れるだけで良いです。VS2003で使用しているExcelのPIAがあると思うのですが、そのExcelよりも新しいバージョンのExcelであれば動作します。逆に言えば、VS2003でExcel2007のPIAを使用してコンパイルしてしまうと、Excel2007よりも古いバージョンのExcelでは動作しなくなるので注意が必要です。


    ところで最初に理屈的にと書いたのは、現在VS2003でコンパイルされているExcelの古いバージョンのPIAで、例えExcel2007が操作できたとしても、65536行を超える行が扱えるかどうか私も試したことがないため、その部分については何とも言えないからです。すみません。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 編集済み trapemiyaModerator 2009年3月10日 0:45 情報追加
    • 回答としてマーク Camui 2009年3月11日 0:01
    2009年3月10日 0:41
    モデレータ
  • EXCEL2007では、拡張子がxlsの場合には65536行までの表示になってしまいます。
    65536行を超えて出力するにはxlsxなどの拡張子にする必要があります。

    EXCEL2007の入ったPCで再コンパイルというよりは
    また、EXCEL2007のCOMコンポーネントをインクルードしてコンパイルする必要があります。
    下記を参照してください。
    http://www.atmarkit.co.jp/fdotnet/dotnettips/717excelfile/excelfile.html

    参考になれば幸いです。
    • 回答としてマーク Camui 2009年3月11日 0:02
    2009年3月10日 3:35

すべての返信

  • 理屈的にはアプリを実行するPCにEXCEL2007を入れるだけで良いです。VS2003で使用しているExcelのPIAがあると思うのですが、そのExcelよりも新しいバージョンのExcelであれば動作します。逆に言えば、VS2003でExcel2007のPIAを使用してコンパイルしてしまうと、Excel2007よりも古いバージョンのExcelでは動作しなくなるので注意が必要です。


    ところで最初に理屈的にと書いたのは、現在VS2003でコンパイルされているExcelの古いバージョンのPIAで、例えExcel2007が操作できたとしても、65536行を超える行が扱えるかどうか私も試したことがないため、その部分については何とも言えないからです。すみません。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 編集済み trapemiyaModerator 2009年3月10日 0:45 情報追加
    • 回答としてマーク Camui 2009年3月11日 0:01
    2009年3月10日 0:41
    モデレータ
  • EXCEL2007では、拡張子がxlsの場合には65536行までの表示になってしまいます。
    65536行を超えて出力するにはxlsxなどの拡張子にする必要があります。

    EXCEL2007の入ったPCで再コンパイルというよりは
    また、EXCEL2007のCOMコンポーネントをインクルードしてコンパイルする必要があります。
    下記を参照してください。
    http://www.atmarkit.co.jp/fdotnet/dotnettips/717excelfile/excelfile.html

    参考になれば幸いです。
    • 回答としてマーク Camui 2009年3月11日 0:02
    2009年3月10日 3:35
  •  trapemiya様、まとけん様
    ありがとうございます。

    拡張子はxlsですが、EXCELによって表示する必要の無いファイルのため、
    特に問題ないでしょうか?
    (もし、見たい場合拡張子を変えれば見られるということでしょうか?)

    現状trapemiya様がご回答下さったとおり、
    アプリ的には何も手を加えずに、Excel2007の入ったPCで動作できており、
    Excel2003でエラーになった部分を通過しているように思います。
    これで、少し様子を見てみたいと思います。
    2009年3月11日 0:11
  • > Camuiさま

    xlsという拡張子で見たい場合ですが
    そのままExcel2007で開く際には、形式が違う旨のメッセージが表示されると思います。
    (中身自体はxlsxのものとなっているため)
    ただ、中身はそのまま参照できるはずです。
    拡張子をxlsxなどに変更すれば、メッセージは表示されなくなります。


    > trapemiyaさま

    特にアプリに手を加えずに動作するということは知りませんでした。
    勉強になりました。
    ありがとうございます。
    2009年3月12日 12:34