プログラム中で、Excelファイルを作成したり、Excelファイルを開いてセルに値を入力したりするケースはよくあると思います。
今回、C#でプログラムで、Excelファイルを作成してセルに数字を入力して保存するアプリケーションを作ってみたら、以下のようにエラーが出ました。
error CS0234: 型または名前空間名 'Office' は名前空間 ’Microsoft’ に存在しません。
解決出来たので解決策をメモします。
目次
C#でExcelファイルを作成して保存
まず最初に正しく動くプログラムは以下の通りです。
1 2 3 4 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 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Microsoft.Office.Interop.Excel; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application(); ExcelApp.Visible = true; Workbook workbook = ExcelApp.Workbooks.Add(); Worksheet worksheet = workbook.Sheets[1]; worksheet.Select(Type.Missing); for (int i = 1; i < 10; i++) { Range rgn = worksheet.Cells[i, 1]; rgn.Value2 = i; } workbook.SaveAs("ExcelTest"); workbook.Close(false); ExcelApp.Quit(); } } } |
このプログラムをVisual Studio 2012で動かします。
フォーム(Form1)とボタン(button1)を作成し
ボタン(button1)を押すと、
プログラムから、Excelを作成してセルに数字を入れて保存することが出来ます。
プログラムを実行します。
button1を押すと、ドキュメントフォルダに以下のようにExcelファイルが作成されました。
error CS0234: 型または名前空間名 'Office' は名前空間 ’Microsoft’ に存在しません。
プログラムを作成中に以下のエラーに遭遇しました。
error CS0234: 型または名前空間名 'Office' は名前空間 ’Microsoft’ に存在しません。
このエラーはExcelアドインが不足しているために発生します。
このエラーを解決するには以下の通りに実行します。
1. Visual Studio を起動します。
2. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
3. [インストールされたテンプレート] ペインで、[Visual Basic] または [Visual C#] を展開し、[Office] を展開して、[2013] (あるいは [2010] または [2007]) をクリックします。
4. [テンプレート] ペインで [Excel 2013 アドイン] (あるいは [Excel 2010 アドイン] または [Excel 2007 アドイン]) をクリックします。
5. [テンプレート] ペインの上部で、[ターゲット フレームワーク] ボックスに [.NET Framework 4] またはそれ以降のバージョンが表示されていることを確認します。
6. 必要に応じて、[名前] ボックスにプロジェクトの名前を入力します。
7. [OK] をクリックします。
8. ソリューション エクスプローラーに新しいプロジェクトが表示されます。
(これは、http://msdn.microsoft.com/ja-jp/library/ee342218.aspx からの引用です)
実際にインストールしようとしてみた画面は以下の通りです。
インストール後に、プロジェクト内で「参照設定」⇒マウスの右クリックで「参照の追加」を押します。
「拡張」の中でインストールしたdllをプロジェクトに追加します。
error CS0246: 型または名前空間名 'Workbook' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
更に以下のようなエラーに遭遇しました。
error CS0246: 型または名前空間名 'Worksheet' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
このエラーは、以下の記述が足りないだけなのでプログラムに追加します。
using Microsoft.Office.Interop.Excel;
実際、調べてみるとExcelアドインを追加した際に、
Microsoft.Office.Interop.Excelというdllが参照に追加されています。
Excelだけでなく、InfoPath、Outlook、PowerPoint、Project、Visio、Wordも同様にアドインを追加することでC#のプログラムから作成、保存することが出来ます。
プログラミングの無料レッスン体験
約8,000名の受講生と80社以上の導入実績のあるプログラミングやWebデザインのオンラインマンツーマンレッスンCodecamp
<Codecampの特徴>
1 現役エンジニアによる指導
2オンラインでのマンツーマン形式の講義
3大手企業にも導入されている実践的なカリキュラム
↓無料体験レッスン実施中です。
コメント