質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

DataGrid

GUIの一種であり、データを表の形式でみることが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

3回答

3999閲覧

C# DataGridにCSVのデータを表示させたい

退会済みユーザー

退会済みユーザー

総合スコア0

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

DataGrid

GUIの一種であり、データを表の形式でみることが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2017/09/08 04:45

はじめまして。お世話になります。

現在C#の学習をしております。
WPFで、参照したcsvファイルの中身を
DataGridに表示するコードを作成しているのですが
実行して、「データ読込」ボタンを押下するも
エラーも発生せず、またDataGridに項目も表示されず
何も起こらない状況です。

コードは下記になります。

###MainWindow.xaml

<Window x:Class="csvGet.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:csvGet" mc:Ignorable="d" Title="CSV取り込み" Height="400" Width="600" MinHeight="400" MinWidth="600"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="2"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="2"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="2"/> <RowDefinition Height="22"/> <RowDefinition Height="2"/> <RowDefinition Height="22"/> <RowDefinition Height="2"/> <RowDefinition Height="*"/> <RowDefinition Height="2"/> </Grid.RowDefinitions> <Grid Grid.Column="1" Grid.Row="1"> <Grid.ColumnDefinitions> <ColumnDefinition Width="70"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="70"/> </Grid.ColumnDefinitions> <Label Grid.Column="0" Content="CSVファイル名" FontSize="10.5" Background="DarkGray"/> <TextBox Grid.Column="1" x:Name="tb" IsReadOnly="True"/> <Button Grid.Column="2" Content="参照" Click="Open_Click"/> </Grid> <Grid Grid.Column="1" Grid.Row="3"> <Grid.ColumnDefinitions> <ColumnDefinition Width="70"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Button Grid.Column="0" Content="データ読込" Click="Read_Click"/> </Grid> <Grid Grid.Column="1" Grid.Row="5"> <DataGrid Name="dg"/> </Grid> </Grid> </Window>

###MainWindow.xaml.cs

using Microsoft.VisualBasic.FileIO; using System; using System.Data; using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Forms; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using Forms = System.Windows.Forms; namespace csvGet { /// <summary> /// MainWindow.xaml の相互作用ロジック /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } //参照ボタンの動作 private void Open_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); //ファイルを選択するダイアログを開く ofd.Filter = "CSVファイル (*.csv)|*.csv"; ofd.FilterIndex = 1; ofd.Title = "CSVファイルを選択"; ofd.Multiselect = false; ofd.ValidateNames = true; if (ofd.ShowDialog() == Forms.DialogResult.OK) { tb.Text = ofd.FileName; } } //データ読込ボタンの動作 private void Read_Click(object sender, EventArgs e) { string FileName = tb.Text; try { var parser = new TextFieldParser(FileName, System.Text.Encoding.GetEncoding("Shift_JIS")); //区切り文字、カンマ形式 parser.TextFieldType = FieldType.Delimited; parser.SetDelimiters(","); //クローズする parser.Close(); } //エラーが出た場合はポップアップを表示する catch (Exception Excep) { Forms.MessageBox.Show(Excep.Message); } } } }

何かコードが不足しているのか、と考えましたが
・そもそも何が足りないのか
・コードのどの部分に、足りない部分を記述(追加)するのか
が全く分からず、この度ご質問させて頂きました。

ちなみに、C#は学習して1か月ほどで
コードはネットや書籍を参考に作成しましたが
文法などにも誤りがあるかもしれません...

解決方法について、ご教示いただければ幸いです。
宜しくお願い致します。

###ツール等のバージョンなど
Windows10、VisualStudio 2017

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

spire.XLSを一度利用したら、できるはずです。

エクセルについての専門家なんだから、是非お試しを。

投稿2020/12/04 03:07

編集2020/12/04 03:08
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

自己解決しました。お手数かけました。

投稿2017/09/11 00:27

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

投稿2017/09/08 05:02

hihijiji

総合スコア4150

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/09/08 05:45

ご回答ありがとうございます。 すみません、何点かご質問させてください。 (1)「Grid と GridView は別の物」とのことですが、 コードのどの部分から読み取ったのでしょうか。 (自身でも気づけるよう今後の参考にしたいです。) (2)修正しようと思うのですが、「ここの記述を直したほうが良い」など 具体的な場所等ご教示頂きたいです。 (3)上記(2)を修正し、問題(何も起こらない)は解決して 正常に動作(「データ読込」ボタンを押下してCSVの中身が表示される) しますでしょうか。 度々申し訳ございません。ご教示のほどお願い致します。
hihijiji

2017/09/08 05:57

(1) XAMLではほとんど DataGrid に触れていない。 コードビハインドでXAMLで定義したdgを使っていない。 からそのように思いました。 2,3は正直なところ一般的な書き方に達してないためとても解釈する気になりません。 まず、サンプルを動かしてみて一般的な書き方を身に着けてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問