Ricopiare dati su un foglio excell,VisualStudio2005, c#

lunedì 24 novembre 2008 - 12.48

LUNA Profilo | Junior Member

Salve a tutti!!!
Sto cercando di salvare in formato CSV, una matrice presente in un dataGridView.
private void SaveGridDataInFile(string fName)
{


int I = 0;
int j = 0;
int N = DistClienti.Rows.Count - 2;
int M = DistClienti.Columns.Count - 1;
object cellvalue;
string rowLine = "";


StreamWriter objWriter = new StreamWriter(fName, true);
while (j <= M)
{
// rowLine = "";
while (I <= N)
{

cellvalue = DistClienti.Rows[I].Cells[j].Value;

rowLine = (cellvalue + ",");
I++;
}
MessageBox.Show(rowLine.ToString());
objWriter.WriteLine(rowLine);
j++;
I = 0;

}
objWriter.Close();
MessageBox.Show("Text written to file");
}
Inserendo però questo metodo, riesco a scrivere solo una colonna del mio foglio,quindi alla fine ottengo solo l'utima colonna della mia matrice nel mio foglio excell...
Qualcuno mi sa dire cosa sbaglio?e come fare ad andare avanti con le colonne nella scrittura?
Grazie mille!!!

Cteniza Profilo | Guru

una cosa del genere (bada che l'ho scritta qui)
foreach (DataGridViewRow dvr In myDataGridView.Rows)
{
StringBuilder sb = new StringBuilder();
foreach (object cella In dvr.Cells)
{
sb.Append(cella);
sb.Append("\t");
}
myStream.WriteLine(sb.ToString());
}

LUNA Profilo | Junior Member

Grazie mille!!Finalmente va avanti con le colonne!!Il problema è che al posto di inserirmi i numeri che fanno parte della matrice del mio dataGrid, mi inserisce il valore "DataGridViewTextBoxCell { ColumnIndex=12, RowIndex=10 }..........per ogni cella della mia pagina excell....
Come posso fare per farli leggere il valore???
Grazie ancora!!

Cteniza Profilo | Guru

void Esporta(string NomeFile)
{
if (NomeFile == "")
NomeFile = "esporta.txt";
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(NomeFile))
{
bool primo = true;
foreach (DataGridViewRow dvr in this.DataGridView1.Rows)
{
StringBuilder sb = new StringBuilder();
if (primo)
{
for (int i = 0; i < dvr.Cells.Count; i++)
{
sb.Append(DataGridView1.Columns[i].Name);
sb.Append("\t");

}
primo = false;
sb.Append(Environment.NewLine);
}
for (int i = 0; i < dvr.Cells.Count; i++ )
{
sb.Append(dvr.Cells[i].Value);
sb.Append("\t");
}
sw.WriteLine(sb.ToString());
}
sw.Close();
}
}

LUNA Profilo | Junior Member

ti ringrazio tanto per la risposta e l'aiuto!!!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5