新手问题,winform程序,用Linq操作的数据库,要求点击按钮把datagridview中显示的数据导出到excel,尽量详细点

解决方案 »

  1.   

    public void DataToExcel(DataGridView m_DataView)
                {
                    SaveFileDialog kk = new SaveFileDialog();
                    kk.Title = "保存EXECL文件";
                    kk.Filter = "EXECL文件(*.xls) |*.xls |所有文件(*.*) |*.*";
                    kk.FilterIndex = 1;
                    if (kk.ShowDialog() == DialogResult.OK)
                    {
                        string FileName = kk.FileName + ".xls";
                        if (File.Exists(FileName))
                            File.Delete(FileName);
                        FileStream objFileStream;
                        StreamWriter objStreamWriter;
                        string strLine = "";
                        objFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write);
                        objStreamWriter = new StreamWriter(objFileStream, System.Text.Encoding.Unicode);
                        for (int i = 0; i < m_DataView.Columns.Count; i++)
                        {
                            if (m_DataView.Columns[i].Visible == true)
                            {
                                strLine = strLine + m_DataView.Columns[i].HeaderText.ToString() + Convert.ToChar(9);
                            }
                        }
                        objStreamWriter.WriteLine(strLine);
                        strLine = "";                    for (int i = 0; i < m_DataView.Rows.Count; i++)
                        {
                            if (m_DataView.Columns[0].Visible == true)
                            {
                                if (m_DataView.Rows[i].Cells[0].Value == null)
                                    strLine = strLine + " " + Convert.ToChar(9);
                                else
                                    strLine = strLine + m_DataView.Rows[i].Cells[0].Value.ToString() + Convert.ToChar(9);
                            }
                            for (int j = 1; j < m_DataView.Columns.Count; j++)
                            {
                                if (m_DataView.Columns[j].Visible == true)
                                {
                                    if (m_DataView.Rows[i].Cells[j].Value == null)
                                        strLine = strLine + " " + Convert.ToChar(9);
                                    else
                                    {
                                        string rowstr = "";
                                        rowstr = m_DataView.Rows[i].Cells[j].Value.ToString();
                                        if (rowstr.IndexOf("\r\n") > 0)
                                            rowstr = rowstr.Replace("\r\n", " ");
                                        if (rowstr.IndexOf("\t") > 0)
                                            rowstr = rowstr.Replace("\t", " ");
                                        strLine = strLine + rowstr + Convert.ToChar(9);
                                    }
                                }
                            }
                            objStreamWriter.WriteLine(strLine);
                            strLine = "";
                        }
                        objStreamWriter.Close();
                        objFileStream.Close();
                        MessageBox.Show(this, "保存EXCEL成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
      

  2.   

    http://topic.csdn.net/u/20120822/11/bc57885c-475e-4787-ac88-fa8338678f9c.html?38451
    我在这个地方发了100分,现在我的全部要求是:1.我在datagirdview中加了分页控件,要能只导出当前页的数据,2.要导出数据库中的所有数据,3。导出查询到的数据
      

  3.   

    这关LINQ TO SQL什么事???
    导出Excel的方法很多,自己写方法也行,用控件也行