- PR -

asp.net2.0(C#) + OWC11(Spreadsheet) の列挿入について

1
投稿者投稿内容
mak
会議室デビュー日: 2004/02/25
投稿数: 2
投稿日時: 2006-12-16 19:05
いつもお世話になっております。

現在ASP.NET2.0(C#)でExcelを出力しようとしています。

Excelはサーバー側で予め用意したテンプレートを読込み
さらにセルの値等を編集して、クライアントへ出力するといった内容です。

今回はOffice Web Component11を用いて、クライアントへ
Excelファイルを出力しようとしています。

OWC11を選択した理由は、Excelファイルをサーバー側で保存しなくても
直接データをクライアント側に簡単に出力できると思ったので上記の構成にしました。
ExcelのテンプレートはExcelをXML形式で保存したXMLファイルです。


ソースは以下のような感じです。

using ・・・
using Microsoft.Office.Interop.Owc11;

Spreadsheet sht = new Spreadsheet();

//テンプレート読込み
sht.XMLURL = "テンプレートのパス.XML";

//スプレッドシートの編集
・・・

//出力
〜 Responseヘッダー等の編集等
Response.Write(sht.XMLData);


ここで、スプレッドシートの編集の際に列を挿入したくて、試行錯誤しています。

Spreadsheetオブジェクトの _Range.Insert(ref object) を使用するのは
想像がつくのですが、引数のobjectに何を指定すればよいのか?です。


以下のように試してみましたが、COMExceptionが発生します。

object rowidx;
rowidx = 1;
((Range)(sht.Cells[1, 1])).Insert(ref rowidx);

正しいInsertの書き方はどうすれば良いのでしょうか?


ご教示お願い致します。

mak
会議室デビュー日: 2004/02/25
投稿数: 2
投稿日時: 2006-12-17 23:15
以下で出来ました。

//テンプレート読込み
sht.XMLURL = "テンプレートのパス.XML";

//スプレッドシートの編集
object xldown = -4121;
((Range)sht.Cells[2, 1]).EntireRow.Insert(ref xldown);

//クライアントに出力
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition", "attachment;filename=test.xls");
Response.Charset = "";
Response.Write(sht.XMLData);
1

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