因客户需要,他不想直接在EXCEL中操作。因为 字段实在太多。 然后我要用C# winform做一个小软件 功能是 把字段设定好。然后 在里头对号输入。。比如 卡好字段  姓名 年龄 像填表一样 直接把文本都填近去就是了。然后button把输入进去的东西 导出成EXCEL表
 我想问的是不经过数据库能实现么?具体怎么实现?是用DataGridView 还是别的什么?

解决方案 »

  1.   

    完全可以,只要你遍历得到你的数据,然后循环写到EXCLE里
    http://www.yongfa365.com/Item/DataGridViewToExcel.html
      

  2.   

    其实DataGridView 也是后台数据库,你可以把DataGridView 对应的数据库导出来就可以了 private void leadToExcel()//导出为excel
        {
            System.Web.HttpContext.Current.Response.ClearHeaders();           //导出EXCEL
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "UTF8";//"GB2312";
            Response.AppendHeader("Content-Disposition", "attachment;filename=Sheet1.xls");
            // 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            //Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");  
            
            Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 0
            System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
            this.GridView1.RenderControl(oHtmlTextWriter);
            Response.Output.Write(oStringWriter.ToString());
            Response.Flush();
            Response.End();
        }
      

  3.   

     /// <summary>
            /// 导出
            /// </summary>
            /// <param name="dataGridview1"></param>
            public void ExportDataGridViewToExcel(DataGridView dataGridview1)
            {
                SaveFileDialog saveFileDialog = new SaveFileDialog();
                saveFileDialog.Filter = "Execl  files  (*.xls)|*.xls";
                saveFileDialog.FilterIndex = 0;
                saveFileDialog.RestoreDirectory = true;
                saveFileDialog.CreatePrompt = true;
         
                    saveFileDialog.Title = "导出Excel文件到";            DateTime now = DateTime.Now;
                saveFileDialog.FileName = now.Year.ToString().PadLeft(2) + now.Month.ToString().PadLeft(2, '0') + now.Day.ToString().PadLeft(2, '0') + "-" + now.Hour.ToString().PadLeft(2, '0') + now.Minute.ToString().PadLeft(2, '0') + now.Second.ToString().PadLeft(2, '0');
                 if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {            Stream myStream;
                myStream = saveFileDialog.OpenFile();
                StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"));
                string str = "";
                try
                {
                    //写标题    
                    for (int i = 0; i < dataGridview1.ColumnCount; i++)
                    {
                        if (i > 0)
                        {
                            str += "\t";
                        }
                        str += dataGridview1.Columns[i].HeaderText;
                    }
                    sw.WriteLine(str);
                    //写内容 
                    for (int j = 0; j < dataGridview1.Rows.Count; j++)
                    {
                        string tempStr = "";
                        for (int k = 0; k < dataGridview1.Columns.Count; k++)
                        {
                            if (k > 0)
                            {
                                tempStr += "\t";
                            }
                            if (dataGridview1.Rows[j].Cells[k].Value != null)
                            {
                               
                                tempStr += dataGridview1.Rows[j].Cells[k].Value.ToString();
                            }
                        }
                        sw.WriteLine(tempStr);
                    }
                    sw.Close();
                    myStream.Close();
                    MessageBox.Show("导出成功");
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                }
                finally
                {
                    sw.Close();
                    myStream.Close();
                }
            }
            else
            {
                MessageBox.Show("您已经取消了打印");
            }
            }方法很好用  给分吧 
      

  4.   

    楼上的貌似不是很明白啊  DataGridview怎么可能是后太数据库呢?
    DataGridview只是数据的展示 属于UI层的。楼主可以将DataGridview的DataSource放到Excel里面就可以了,没有必要通过数据库,而且没有理由要通过数据库
      

  5.   

    可以把DataGridview 换成datatable  明白原理什么都好做。
      

  6.   

    怎么个换法没看明白 换成datatable
      

  7.   

    DataGridview.DataTable[0] 是第一个