欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C#之GridControl导出为Excel

程序员文章站 2022-06-08 17:44:13
...

 

private void ToExcelbtn_Click(object sender, EventArgs e)
{
    try
    {
        SaveFileDialog saveFileDialog = new SaveFileDialog();
        saveFileDialog.Filter = "Excel files (*.xls)|*.xls";
        saveFileDialog.FilterIndex = 0;
        saveFileDialog.RestoreDirectory = true;
        saveFileDialog.Title = "导出属性表为Excel";
        if (saveFileDialog.ShowDialog(this) == DialogResult.OK)
        {
            Stream myStream;
            myStream = saveFileDialog.OpenFile();
            StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));
            string str = "";
            try
            {
                //写标题
                for (int i = 1; i < gridView1.Columns.Count; i++)
                {
                    if (i > 1)
                    {
                        str += "\t";
                    }
                    str += gridView1.Columns[i].FieldName;
                }

               sw.WriteLine(str);
                //写内容
                for (int j = 1; j <= gridView1.RowCount; j++)
                {
                    string tempStr = "";
                    for (int k = 1; k < gridView1.Columns.Count; k++)
                    {
                        if (k > 1)
                        {
                            tempStr += "\t";
                        }
                        tempStr += gridView1.GetRowCellValue(j, gridView1.Columns[k]);
                    }
                    sw.WriteLine(tempStr);
                }
                sw.Close();
                myStream.Close();
                MessageBox.Show("数据已成功导出!", "导出为Excel");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                LogHelper.Error(ex.Message);
            }
            finally
            {
                sw.Close();
                myStream.Close();
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
        return;
    }
}