C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 【C#】 Excelファイルへの出力方法と保存方法について


(過去ログ 11 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■2539 / inTopicNo.1)  【C#】 Excelファイルへの出力方法と保存方法について
  
□投稿者/ ルーシー (1回)-(2007/04/11(Wed) 22:08:16)

分類:[C# (Windows)] 

お世話になります。
よろしくお願いいたします。

現在ListBoxに表示された内容を、Excel保存できるようなプログラムを考えています。ListBoxにはカラムは5つあり、それぞれ文字列を表示しています。表示する文字列の中には00:00.000など、時間表示をしているものがあり、これはExcelの書式設定でSheetを文字列に変更する必要があるのかな?と思っています。

まずは基本的なファイル出力方法なのですが、いまいち理解できていません。ご教授のほどよろしくお願いいたします。
その前に、現在のファイル出力方法はFileStreamを使用しています。これは、既存のファイルを選択した場合、以前の文末に追記していく形式を取りたいために使用しています。(第二パラメータでTrue)
この追記していくタイプで、現在SaveFileDialogより選択されたファイルに出力しています。拡張子が.xlsを選択された際は、\tを途中で入れ、セル移動をさせて記述し、保存しています。
一応これでExcelファイルが作成されるのですが、"0.000"などの小数点がついた場合、デフォルトのエクセルの設定ですと小数点以下が省略されてしまいます。(10.123→10)

この時点で何か改良するべき点等がございましたら、ご教授のほどよろしくお願いいたします。

次にExcelファイル出力をさせた場合です。
この場合以下のようなソースコードを考えました。
// Excelを作成
Excel.Application app;
app = new Excel.Application();
// 表示する
app.Visible = true;

// ワークシートを追加する
Excel.Workbook workbook = app.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
// ワークシートをアクティブにする
workbook.Activate();
// シートコレクションを取得
Excel.Sheets sheets = workbook.Sheets;
// 一番最後に追加したシートが返却される
Object after = sheets[sheets.Count];
Object before = System.Reflection.Missing.Value;
Excel.Worksheet sheet = (Excel.Worksheet)sheets[sheets.Count];
sheet.Cells[1, 2] = "名前";
sheet.Cells[1, 3] = "結果";

上記のコードですと、Excelファイルが出力され、文字列も表示されています。しかし、書式設定や、ファイルの保存場所の指定などが分かりません。
サイトでExcel関連を調査したのですが、保存場所に関しての説明はほとんどされていませんでしたので、お知恵をお借りしたいと思います。

長文になってしまい、分かりづらいかも知れませんが、どうかよろしくお願いいたします。
引用返信 編集キー/
■2548 / inTopicNo.2)  Re[1]: 【C#】 Excelファイルへの出力方法と保存方法について
□投稿者/ じゃんぬねっと (404回)-(2007/04/12(Thu) 09:24:51)
じゃんぬねっと さんの Web サイト
No2539 (ルーシー さん) に返信
> 一応これでExcelファイルが作成されるのですが、"0.000"などの小数点がついた場合、
> デフォルトのエクセルの設定ですと小数点以下が省略されてしまいます。(10.123→10)

Excel のセルには書式の整形という概念があるからです。
これをどうにかするには、セルの書式を文字列にするなどすれば OK です。
引用返信 編集キー/
■2649 / inTopicNo.3)  Re[2]: 【C#】 Excelファイルへの出力方法と保存方法について
□投稿者/ ぱる (3回)-(2007/04/12(Thu) 22:59:48)
じゃんぬねっとさん、ご返信ありがとうございます。

> Excel のセルには書式の整形という概念があるからです。
> これをどうにかするには、セルの書式を文字列にするなどすれば OK です。
当方でもここまでは考えが及びました。
次に、書式設定を文字列に変更する方法ですが、これがイマイチ理解できていません。
Rangeの定義を行い、それで何かのプロパティ(?)設定で文字列を指定するのかなぁ?と漠然としたイメージはあるのですが…。

もし方法が正しいのであれば、後はRangeで何と言うプロパティを指定するのか?というこが問題になります。
MSDNや、VSのヘルプにもこの辺はあまり記載されていないので、よろしければ設定方法をご教授のほどよろしくお願いいたします。

引用返信 編集キー/
■2652 / inTopicNo.4)  Re[3]: 【C#】 Excelファイルへの出力方法と保存方法について
□投稿者/ 魔界の仮面弁士 (260回)-(2007/04/12(Thu) 23:17:23)
No2649 (ぱる さん) に返信
> 次に、書式設定を文字列に変更する方法ですが、これがイマイチ理解できていません。
> Rangeの定義を行い、それで何かのプロパティ(?)設定で文字列を指定するのかなぁ?
NumberFormat プロパティです。

> と漠然としたイメージはあるのですが…。
Excel の『マクロの記録』機能を使って、ユーザ操作を Excel のマクロにしてみましょう。
プロパティ等を調査する際の足がかりになるかと思います。
(もっとも、出力されるのは VBA のコードだけで、残念ながら C# の構文にはなりませんが)
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -