閲覧総計:7177 (本日:4 昨日:1)
ASP.NETでのCSVファイルの読込みの方法を確認した。 09/09/22
↓参考にしたページ:「CSVファイルを読み込むには?」06/08/16
http://www.atmarkit.co.jp/fdotnet/dotnettips/487csvparser/csvparser.html
.NET Framework2.0からTextFieldParserクラス(Microsoft.VisualBasic.FileIO
名前空間)が提供されCSVファイルのハンドリングが非常に簡単になっている。
(背景)
ASP.NET開発はSQL Server等のDBMSを利用する事が前提になっており、CSVファイル
の読込み方法はあまり紹介されていない。エクセルデータをASP.NETで扱いたい場合、
CSVファイルを介在することが多いので、今回確認した。
開発環境:VWD2005+AJAX1.0+Toolkit + SQL Server2005
サーバ:ASP.NET2.0+AJAX1.0 + SQL Server2005
【稼動サンプル】
http://www.kuri6005.fscs.jp/4AspNet10/Csv/CsvRead.aspx
※csvファイル(text.csv(S_JIS保存))は、プログラムと同じフォルダ内に置く。
コントロールの設定値
コントロール | プロパティ | 値 | コメント |
---|---|---|---|
TextBox1 | TextMode | MultiLine | 複数行表示に設定 |
【CsvRead.aspx】
<%@ Page Language="VB" %> <%@ Import Namespace = "Microsoft.VisualBasic.FileIO" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> '↓参考にしたページ:「CSVファイルを読み込むには?」 06/08/16 'http://www.atmarkit.co.jp/fdotnet/dotnettips/487csvparser/csvparser.html Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Dim parser As New TextFieldParser(Server.MapPath("text.csv"), _ System.Text.Encoding.GetEncoding("Shift_JIS")) parser.TextFieldType = FieldType.Delimited '固定長データではなく可変長データを宣言 parser.SetDelimiters(",") ' 区切り文字はコンマ While Not parser.EndOfData Dim row As String() = parser.ReadFields() '1行読み込み ' 配列rowの要素は読み込んだ行の各フィールドの値 For Each field As String In row field = field.Replace(vbCrLf, "n") ' 改行をnで表示 field = field.Replace(" ", "_") ' 空白を_で表示 'Console.Write(field + vbTab) ' TAB区切りで出力 TextBox1.Text &= field & vbTab Next 'Console.WriteLine() TextBox1.Text &= vbCrLf End While End Sub </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>無題のページ</title> </head> <body> <form id="form1" runat="server"> <div> CSVファイルの読込み稼働確認 09/09/21<br /> <br /> <asp:TextBox ID="TextBox1" runat="server" Height="120px" TextMode="MultiLine" Width="271px"></asp:TextBox></div> </form> </body> </html>