@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

C#からのExcelファイル操作

1
投稿者投稿内容
S_Tatsu
ベテラン
会議室デビュー日: 2005/05/13
投稿数: 58
お住まい・勤務地: 東京
投稿日時: 2005-06-07 15:57
いつもお世話になっております。

次のような処理を行いたいのですがなかなかうまくいかず
つまづいております。

[Template]というレイアウトのみのワークシートをもつA.xls
をC#で作成したWindowsApplication側から起動する。
データベースから抽出したレコードの件数分Templateワークシ
ートをコピーしてワークシートと名をレコードのフィールド名
に変更する。
レコードのフィールドの値をそれぞれに対応したワークシート
のA1,B4,C5,H8といったバラバラのセルに格納していく。
全レコードを格納したら別ファイル名で保存してA.xlsはそのま
まの状態にしておきたい。

といった内容なのですが、現在「Microsoft Excel 10.0 Object
Library」を参照して作成できるか試しております。
つまづいているところはワークシートをコピーして別の名前に
変更するところがわからず困っております。
また別ファイルにして保存したい場合なのですが、テンプレート
ファイルを起動して別ファイル名で保存するのと先にテンプレート
ファイルをコピーしておきコピーされたファイルに対して編集を
行うのはどちらがよいかと悩んでおります。
それとひとつ気になったのが「Microsoft Excel 10.0 Object Library」
ではExcel97のファイルは操作できないのでしょうか?
どなたかご教授いただけないでしょうか、よろしくお願い致します。

こちらは参考にしたURLです。
http://backno.mag2.com/reader/BackBody?id=200407150800000000069455000
http://backno.mag2.com/reader/BackBody?id=200407220800000000069455000
Hasumi
ベテラン
会議室デビュー日: 2002/07/23
投稿数: 78
お住まい・勤務地: 神奈川・東京
投稿日時: 2005-06-07 17:30
引用:

S_Tatsuさんの書き込み (2005-06-07 15:57) より:
つまづいているところはワークシートをコピーして別の名前に
変更するところがわからず困っております。


コード:
//テンプレートのコピー
templateSheet.Copy(Missing.Value,book.Sheets[book.Sheets.Count]);
//シートの取得
sheet = (Excel._Worksheet)book.Sheets[book.Sheets.Count];
//シート名の設定
sheet.Name = "xxx";


昔こんな感じでやってました。
S_Tatsu
ベテラン
会議室デビュー日: 2005/05/13
投稿数: 58
お住まい・勤務地: 東京
投稿日時: 2005-06-07 18:36
Hasumi様
返信ありがとうございます!
.NAMEのプロパティに代入を行ってうまくシート名の変更ができました!
この設定したシート名でアクティブシートを選択することは難しいでしょうか?
以前VBAでは簡単にできていたのですがC#ではシートのIndexをint型で指定して
るようなのですが。。
1

スキルアップ/キャリアアップ(JOB@IT)