I'm trying to export my CSV file to ListView.
ListView looks like this:
http://screenshooter.net/7827870/vrwwokd
I managed to export csv file but it puts everything in "Name" column.
private void toolStripButton1_Click(object sender, EventArgs e)
{
using (OpenFileDialog openFileDialog1 = new OpenFileDialog())
try
{
openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
openFileDialog1.DefaultExt = "csv";
openFileDialog1.Title = "Open file";
openFileDialog1.Filter = "CSV (*.csv)|*.csv";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
FileStream srcFS;
srcFS = new FileStream(openFileDialog1.FileName, FileMode.Open);
StreamReader srcSR = new StreamReader(srcFS,System.Text.Encoding.Default);
do
{
string ins = srcSR.ReadLine();
ListViewItem lvi = new ListViewItem();
lvi.SubItems.Add(ins);
if (ins != null) listView1.Items.Add(lvi);
else break;
} while (true);
srcSR.Close();
}
}
catch (Exception errorMsg)
{
MessageBox.Show(errorMsg.Message,"Error reading a file",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
Anyone has a clue ? :)
Here how it looks now:
using (OpenFileDialog openFileDialog1 = new OpenFileDialog())
try
{
openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
openFileDialog1.DefaultExt = "csv";
openFileDialog1.Title = "Open file";
openFileDialog1.Filter = "CSV (*.csv)|*.csv";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
FileStream srcFS;
srcFS = new FileStream(openFileDialog1.FileName, FileMode.Open);
StreamReader srcSR = new StreamReader(srcFS,System.Text.Encoding.Default);
do
{
string ins = srcSR.ReadLine();
string[] columns = ins.Split(',');
ListViewItem lvi = new ListViewItem(columns[0]);
lvi.SubItems.Add(ins);
for (int i = 1; i < columns.Count(); i++)
{
lvi.SubItems.Add(columns[i]);
}
listView1.Items.Add(lvi);
} while (true);
srcSR.Close();
}
}
catch (Exception errorMsg)
{
MessageBox.Show(errorMsg.Message,"Error reading a file",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
At the moment you are adding the whole line as one listviewitem. First you would need to split the line into columns:
string[] columns = ins.Split(';');
then create a listviewitem with the first columns.
ListViewItem lvi = new ListViewItem(columns[0]);
then iterate through the remaining and add a subitem for each column:
for (int i = 1; i< columns.Count(); i++)
{
lvi.SubItems.Add(columns[i]);
}
finally add the listviewitem to the listview
listView1.Items.Add(lvi);