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

DataGrid→Excel "0001"文字列の表示

1
投稿者投稿内容
吉備
会議室デビュー日: 2003/01/29
投稿数: 10
お住まい・勤務地: 東京都
投稿日時: 2003-02-06 17:02
こんにちは。
以前から、話題に上っているDataGrid→EXCELへの出力で、困っていることがあります。

「Live Demo:DataGridをExcelにエクスポートしてグラフを作成するには」の中で、
"0001"のようなデータが"1"になってしまう。
というのがあり、私も同じ問題で躓いていたので参考にさせていただいてましたが、
結局、出来ないままでいます。

試したのは、このようなコードで直接Excelに書くことと、
#これは動きましたが、"0001"は"1"になります。
---
System.IO.StringWriter tw = new System.IO.StringWriter()
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw)
DG.RenderControl(hw)
Response.Write(tw.ToString())

CreateObjectを使うことです。
#ただし、これは「oBook.HTMLProject.HTMLProjectItems」で、
以下のエラーが出て動きません。
<エラー:インターフェイス 'Office.HTMLProjectItems' には既定のプロパティがないため、
インデックス処理を実行できません>
---
oXL = CType(CreateObject("Excel.Application"), Excel.Application)
oBook = oXL.Workbooks.Add
oBook.HTMLProject.HTMLProjectItems("Sheet1").Text = dgGrid
oBook.HTMLProject.RefreshDocument()

まずは、CreateObjectを動かしてからだろう。。という思いですが、
この質問をしてからの方がいいのか、何か別の方法を調べたらいいのか、
両方を行っていますが、未だうまい具合に進みません。

どなかたか、"0001"をExcelに渡せた方がいらっしゃいましたら、お知恵を貸していただけませんでしょうか。
どうぞ、よろしくお願いいたします。

[ メッセージ編集済み 編集者: 吉備 編集日時 2003-02-06 17:02 ]
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2003-02-06 17:26
"0001"を"'0001"にすれば表示されると思います。
(数字でなく文字になりますが)
吉備
会議室デビュー日: 2003/01/29
投稿数: 10
お住まい・勤務地: 東京都
投稿日時: 2003-02-06 17:35
早速のご返答ありがとうございました。
確かに、"'0001"で渡すと、文字ではありますが書き込みができます。
しかしこれは、LiteLineで一行渡しただけで、DataGridからはどのタイミングで変換したらのいのか考えています。
データ自体に"'"をつけるわけにはいかないですし・・・。
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2003-02-06 17:50
どうやってコードに反映させるかまでは調べておりませんが、
書式を文字列にしてみたらどうでしょう?

ちなみに、Excelの「マクロの記録」で取ってみたところ、
Selection.NumberFormatLocal = "@"
で文字列形式にできるようです。

問題解決への参考になれば幸いです。


[ メッセージ編集済み 編集者: まゆりん 編集日時 2003-02-06 17:57 ]
吉備
会議室デビュー日: 2003/01/29
投稿数: 10
お住まい・勤務地: 東京都
投稿日時: 2003-02-07 10:47
まゆりんさん、ご返信ありがとうございました。
たしかに、書式を文字列にするというのは、魅力的な方法だと思います。
試行錯誤の上、DataGridにセットするSQL文で、そのカラムに対して文字列操作を行いました。

Select '''' || ID AS ID, From TableA
ID
-------
'0001

この方法で、進めたいと思います。
catsさん、まゆりんさん、大変参考になりました!!
1

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