- PR -

ADO.NET を使用したエクセルシート作成

1
投稿者投稿内容
ベル
会議室デビュー日: 2002/12/01
投稿数: 18
投稿日時: 2004-09-05 22:49
いま ADO.NET を使用してエクセルシート作成を考えております。

マイクロソフトのサイトよりJet OLE DB プロバイダを使用した
以下の事例が紹介されていたのですが、
エクセルのワークシートを作成する際のデータ型に、
何のデータ型(ADO? C#? Framework?.....???) を指定してよいのかが分かりません。
ご存知の方がいらっしゃいましたら、回答頂ければ幸いです。
よろしくお願いします。

string sConn = "Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=C:\ExcelData.xls;
Extended Properties='Excel 8.0;HDR=YES';";

OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = sConn;
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;

●ここの部分です。=========================================================
cmd.CommandText = "CREATE TABLE EmployeeData (Id char(255), Name char(255), BirthDate date)";
===========================================================================
cmd.ExecuteNonQuery();

cmd.CommandText = "INSERT INTO EmployeeData (Id, Name, BirthDate)
values ('AAA', 'Andrew', '12/4/1955')";
cmd.ExecuteNonQuery();
conn.Close();
Qoo
大ベテラン
会議室デビュー日: 2003/04/08
投稿数: 121
投稿日時: 2004-09-07 17:00
こんにちは。

事例が紹介されていたというのは、ここでしょうか?
http://support.microsoft.com/default.aspx?scid=kb;JA;306572
...確かに、この例では、シートはあらかじめ作成してますねぇ。

直接の解ではないですが、こことかは参考になるでしょうか。。。
http://www.microsoft.com/japan/msdn/thisweek/10lines/office_app.asp
ベル
会議室デビュー日: 2002/12/01
投稿数: 18
投稿日時: 2004-09-08 01:06
Qooさん、ありがとうございます。

EXCEL97も存在する環境ですので、XMLは断念しました。

紹介されていたというのは、マイクロソフトの下記ページです。
http://support.microsoft.com/default.aspx?scid=kb;ja;316934#10
このページではエクセルへのTable作成で、型指定をしているにも関わらず、
「Excel テーブルは、従来のデータベースとは異なり、
 列に直接データ型を指定する方法がありません。」との記載もされています???。

エクスポートしたエクセルには、Createで指定した型が反映されているように思われるのですが...
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-09-08 10:16
>エクスポートしたエクセルには、Createで指定した型が反映されているように

DB のように char(255) という情報はExcel列には記憶されていない
ということでは?
DATE もDBのようなデータ型ではなく、数値の書式ですし(Excelでは)
Qoo
大ベテラン
会議室デビュー日: 2003/04/08
投稿数: 121
投稿日時: 2004-09-08 16:06
こんにちは。

http://support.microsoft.com/default.aspx?scid=kb;JA;257819
の”フィールド情報のクエリ”のところにデータ型に関しての記述がありましたよ〜。
ベル
会議室デビュー日: 2002/12/01
投稿数: 18
投稿日時: 2004-09-09 16:20
MMXさん、Qooさんありがとうございます。

まず、MMXさんのExcel列に型は記憶されていないのでは?というお話ですが、
型にMoneyを指定し、そこに単なる数値をエクスポートしても
セルの書式が通貨となるなど、やはりエクセルで型認識がなされているようです。

次にQooさんに教えていただいた定数ですが、.NETでの使用方法が分かりませんでした。

で、色々型を指定し、使用できるものを試してみたところ、Jetデータ型表記でいいのかな?という気がしてきました。

1

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