PDA

View Full Version : سوال: عدم انتقال سطر آخر datagridview به اکسل؟؟



zzhkfa
پنج شنبه 09 اردیبهشت 1395, 11:52 صبح
با کد های زیر امکان گرفتن خروجی از گریدویو امکان پذیر است ولی مشکلی که هست اینه که یک ردیف به آخر انقال داده نمی شود. دلیل چیست؟؟
مثلا اگر در گرید ویو یک رکورد باشد انتقال نمی دهد حتما باید دو رکورد باشد، آنوقت فقط رکورد اول را انتقال می دهد!!!!!


private void ToCsV(DataGridView dGV, string filename)
{
string stOutput = "";
// Export titles:
string sHeaders = "";

for (int j = 0; j < dGV.Columns.Count; j++)
sHeaders = sHeaders.ToString() + Convert.ToString(dGV.Columns[j].HeaderText) + "\t";
stOutput += sHeaders + "\r\n";
// Export data.
for (int i = 0; i < dGV.RowCount - 1; i++)
{
string stLine = "";
for (int j = 0; j < dGV.Rows[i].Cells.Count; j++)
stLine = stLine.ToString() + Convert.ToString(dGV.Rows[i].Cells[j].Value) + "\t";
stOutput += stLine + "\r\n";
}
Encoding utf16 = Encoding.GetEncoding(1254);
byte[] output = utf16.GetBytes(stOutput);
FileStream fs = new FileStream(filename, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(output, 0, output.Length); //write the encoded file
bw.Flush();
bw.Close();
fs.Close();
}

کد دکمه:
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "Excel Documents (*.xls)|*.xls";
sfd.FileName = "export.xls";
if (sfd.ShowDialog() == DialogResult.OK)
{
//ToCsV(dataGridView1, @"c:\export.xls");
ToCsV(dataGridView1, sfd.FileName); // Here dataGridview1 is your grid view name

}

ژیار رحیمی
پنج شنبه 09 اردیبهشت 1395, 14:13 عصر
دوست گرامی شما در حلقه for یک رکورد کمتر رو شمارش میکنی

for (int i = 0; i < dGV.RowCount - 1; i++)

منهای یک رو بردار .به علامت کوچکتر توجه کن