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

CSV出力について

1
投稿者投稿内容
まや
会議室デビュー日: 2006/08/26
投稿数: 15
投稿日時: 2006-09-30 03:32
こんばんは。

まやです。

http://www.atmarkit.co.jp/fdotnet/dotnettips/213asptemplate/asptemplate.htmlを参考
にしてCSVファイルの出力を行うと思っています。

参考の遠り作成してみると、エラーとして
「エラー3 検証(): 要素 'html' が発生する回数が少なすぎます」
「エラー4 認識されないタグ プレフィックスまたはデバイス フィルタ 'asp' です。」
が出力されてしまいます。

コントロールの部分だと思い、<asp:Repeater id="objRep" runat="Server" DataSource="<%#objDr %>" /> の部分に

<html>
<body>
<asp:Repeater id="objRep" runat="Server" DataSource="<%#objDr %>" /> の
</body>
</html>

と行ってみた所エラーは消えたのですが出力されるCSVファイルに<html>、<body>、</body>
、</html>が記載されて困っております。この方法だとうまく行えないのでしょうか?

アドバイスの程をどうかよろしくお願い致します。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2006-09-30 05:50
GridViewをCSV形式でエクスポートするサンプルを作成
しましたので参考にしてください。

↓GridViewをCSV形式でエクスポート
http://akiokasai.qsh.eu/Goto.aspx?id=060927-2

※このサンプルはIE7(RC)では正常に動作しません。
_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
まや
会議室デビュー日: 2006/08/26
投稿数: 15
投稿日時: 2006-09-30 06:56
Access様

おはようございます。

まやです。

迅速なご返答ありがとうございます。

さっそく参考にさせて頂きます。

参考例まで出して頂いてこんな事を言ってしまってもし気にさわられてしまったら申し訳ありませんが、やはり今回の用なやり方では不可能なのでしょうか?


まや
会議室デビュー日: 2006/08/26
投稿数: 15
投稿日時: 2006-10-02 21:49
まやです。

こんばんは。

何度も大変申し訳ありませんが、投稿させて頂いたやりかた
でやらなくてはいけなくて、アドバイスを頂きたく再度アップしました。

今回CSVファイルに<html>、<body>、</body>
、</html>が記載されてるのならば、CSVファイルに書き込みが終わった際
に再度そのファイルを読み込み、<html>、<body>、</body>
、</html>が記載されていた場合その部分のみ削除する方法をと思って
調べているのですが、この様な方法は可能でしょうか?

アドバイスの程をどうかよろしくお願い致します。
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2006-10-02 22:57
#.NETをあまり(というか全然)わからないのにアレですが(汗

Content-typeは間違ってないですよね?なぜ「エラー3 検証(): 要素 'html' が発生する回数が少なすぎます」というエラーになるのかを追求した方がいいと思います。application/octet-streamで<html><body>を付ける意味はないと思いますので・・。

引用:

まやさんの書き込み (2006-10-02 21:49) より:
今回CSVファイルに<html>、<body>、</body>
、</html>が記載されてるのならば、CSVファイルに書き込みが終わった際
に再度そのファイルを読み込み、<html>、<body>、</body>
、</html>が記載されていた場合その部分のみ削除する方法をと思って
調べているのですが、この様な方法は可能でしょうか?


ローカルに落としたデータを触るのは無理では?どこに置いたのかもわからないと思います。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2006-10-03 06:11
引用:

今回CSVファイルに<html>、<body>、</body>
、</html>が記載されてるのならば、CSVファイルに書き込みが終わった際
に再度そのファイルを読み込み、<html>、<body>、</body>
、</html>が記載されていた場合その部分のみ削除する方法をと思って
調べているのですが、この様な方法は可能でしょうか?


「まや」さんが参考にされたサンプルは、メモ帳などのテキストエディタで
作成したものと思われます。

VS.NET, VWDなどのIDEツールを利用すると自動的に<html><body>などのタグが
追加されますので、CSVにこれらのタグが含まれてしまいます。

解決策としては、

1)テキストエディタでASPXファイルを作成する。
  この場合、<html><body>なしてRepeaterを記述できます。

  ただし、保守性がよくないのでお勧めできません。
  
  ※あなたが参考にされたサンプルは、データにコンマ、引用符が
   含まれているとき問題があります。

2)コードを記述してCSVファイルを生成する。
  当方が作成したサンプル


_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
まや
会議室デビュー日: 2006/08/26
投稿数: 15
投稿日時: 2006-10-04 00:58
こんばんは。

まやです。

shimix様、Access様、ご返答本当にありがとうございます

引用:
--------------------------------------------------------------------------------

解決策としては、

1)テキストエディタでASPXファイルを作成する。
  この場合、<html><body>なしてRepeaterを記述できます。

  ただし、保守性がよくないのでお勧めできません。
  
  ※あなたが参考にされたサンプルは、データにコンマ、引用符が
   含まれているとき問題があります。
--------------------------------------------------------------------------------

Access様、テキストエディタで作成したらうまく行きましたありがとうございました。

そして、問題まで記載して下さり本当にありがとうございした。

Access様のアドバイス通り問題が発生する事から、Access様がご提示して頂いた
サンプルを元に行ってみたいと思いますが、例えば、値が「1」(int型)だった
時にCSVでは「テスト」と表示したらい、値がdatetaime型の場合日付だけを
表示させる事は可能でしょうか?

何回も本当に申し訳ございませんが、何卒アドバイスの程をよろしくお願いいたします。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2006-10-04 06:26
引用:

Access様のアドバイス通り問題が発生する事から、Access様がご提示して頂いた
サンプルを元に行ってみたいと思いますが、例えば、値が「1」(int型)だった
時にCSVでは「テスト」と表示したらい、値がdatetaime型の場合日付だけを
表示させる事は可能でしょうか?


コードでCSVファイルを作成していますから希望通りの仕様でできます。

カレントのレコードがDataRowに格納されていますので、フィールドの値をチェック
したり、値をフォーマットします。

例1)
If row("数値") = 1 Then

例2)
String.Format("{0:d}", row("日付"))




_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
1

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