.NET で COM を経由して Excel を操作し、Excel ファイルを PDF として変換出力します。
タグ: Office
エクスプローラーからの Office ファイル新規作成テンプレートを変更する
※ここでは Excel 中心の説明になっています。
Office をインストールするとエクスプローラーの右クリックメニューの新規作成に各 Office の新規ファイルが追加されます。
これを選択するとテキストファイルなどと同じように新規ファイルが作成されますが、Excel や PowerPoint などについては決められた形式で作成されます。例えば Excel ファイルであればシートは必ず3つ存在し、フォントがMS Pゴシックになっている、などがあります。これは、Excel のオプションにある新規作成の初期状態とは別々に管理されています。
新規作成の初期テンプレートは実は Excel の設定ではなく、テンプレートファイルをコピーして作成されるようになっています。テンプレートファイルは「C:WindowsShellNew」に存在しているので、これらのファイルを書きかえることによって新規作成の初期状態も変更することができます。
Windows Vista や Windows7, 8 の場合、UAC の権限によってこのフォルダは読み取り専用になっているので、ファイルを変更する場合は管理者権限で読み取り権限を解除するか、一度別なフォルダでテンプレートを作成してから管理者権限でファイルを上書きする必要があります。
ちなみに XXX12.xlsx と書いてあるファイルは Office 2007 の形式のファイルです(2007, 2010 用)。2003 以前のファイル (97-2003 形式) は XXX9.xls になります。
]]>Word, Excel, PowerPoint の各ビューワー
2010 形式バージョンのファイルにも対応しているビューワーが公開されていました。
Excel と PowerPoint については 2010 っぽいインターフェースなのですが、Word Viewer だけはなぜか 2003 のビューワーがインストールされました。(Windows XP にインストールしたせい?)
ただ、Word/Excel/PowerPoint 用 Microsoft Office 互換機能パック をインストール知れば Word Viewer 2003 でも 2007 形式のファイルは見れるようです。
]]>OLEDB を使用して Excel ファイル(2007形式)のデータを読み込むための前準備
メモ書きです。プログラム側については探すといくつか出てくるので、ここではその前準備について書いています。(2011/10時点)
OLEDB を使用して 2007 形式の Excel ファイルを読み込むにはコンポーネントをインストールする必要があります。Office や Visual Studio をインストールしてもコンポーネントはインストールされないので個別にインストールする必要があります。
コンポーネントは下記のいずれかをインストールします。
- 2007 Office system ドライバ: データ接続コンポーネント (32bit)
- Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント (32bit)
- Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント (64bit)
2007 バージョンと 2010 バージョンはどちらをインストールしても大丈夫です。バージョンの違いによってプログラムが変わることはありません。
ただし、32bit と 64bit では以下のような違いがあります。
OS が 32bit 版の場合
2007 (32bit)、2010 (32bit) のいずれかのみインストールできます。
OS が 64bit 版の場合
どのコンポーネントもインストール可能です。ただし、プログラムで使用する際は注意する事項があります。(後程記載)
2007 Office がインストールされている場合
すべてインストールできます。
Office 2010 32bit がインストールされている場合
2010 の 64bit 版のコンポーネントはインストールできません。
Office 2010 64bit がインストールされている場合
2010 の 32bit 版のコンポーネントはインストールできません。ただし、2007 32bit 版のコンポーネントはインストールできます。
データ接続コンポーネント 32bit 版がインストールされている場合
64bit 版のコンポーネントはインストールできません。
データ接続コンポーネント 64bit 版がインストールされている場合
32bit 版のコンポーネントはインストールできません。(実は 2007 のコンポーネントをインストールする際、2010 の存在チェックを行っていないため、2010 64bit ⇒ 2007 32bit の順番でインストールすることは可能です。ただし、正常な動作をしてくれる保証はありません。)
64bit OS 環境で OLEDB を使用する際の注意点
上記の理由により 32bit 版と 64bit 版のデータ接続コンポーネントを同時にインストールすることはできません。作成したアプリケーションを起動した際、そのアプリケーションが 32bit なのか 64bit なのかで使用されるデータ接続コンポーネントの bit(32 or 64) が決定されるので注意が必要です。
例えば Office 2010 64bit をインストール済みの場合、データ接続コンポーネントのバージョンは必然的に 2010 64bit 版になります(2007 は除く)。Visual Studio 2010 SP1 で作成するアプリケーションはデフォルトで x86 になっているので、そのまま OLEDB を使用するアプリケーションを作成しても実行時にコンポーネントが存在しないというエラーが発生します。
また、他のアプリケーションの拡張コンポーネントとしてプログラムを作成する際、その対象アプリケーションの bit に依存する点も注意する必要があります。例えば Visual Studio 2010 の拡張プログラムを作成する際、Visual Studio 2010 は 32bit 版しか提供されていないので、作成した拡張コンポーネントは必然的に 32bit モードで動作します。
]]>