有关于winfrom的datagridview中导数据到Excel文档中

来源:互联网 发布:淘宝移动端网址 编辑:程序博客网 时间:2024/06/05 03:07


这是整体界面,要从左边的datagridview导数据保存为Excel文档,点击下面的保存按钮则保存了起来,我现在用的是vs2013的,系统是win8,与VS2008有些不同,我会指出其不同的地方。

其中datagridview控件的命名为:SensorDatadGView,保存按钮控件命名为SaveDatabtn

然后在保存按钮的Click事件中调用导出数据函数。

 private void SaveDatabtn_Click(object sender, EventArgs e)
        {
            bIsSaveSensorData = true;
            if (File.Exists(@SelPathtxtX.Text + "\\" + @FileNametxtX.Text + ".xlsx"))
            {
                MessageBox.Show("(づ ̄3 ̄)づ╭❤~,这个文件名被占用了,请另取名吧");
            }
            else
            {
               
                bool bIsSaveSuccee = ExportDataGridview(SensorDatadGView, false);
                bIsSaveSensorData = false;
                if (bIsSaveSuccee)
                {
                    MessageBox.Show("(*^__^*) 嘻嘻……数据文档保存成功");
                }
                else
                {
                    MessageBox.Show("o(︶︿︶)o唉 数据保存失败了!");
                }
            }
            bIsSaveSensorData = false;
        }

导出数据函数:ExportDataGridview

如下:

<pre name="code" class="csharp"> public bool ExportDataGridview(DataGridView gridView, bool isShowExcle)        {            Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();            if (excel == null)            {                MessageBox.Show("(づ ̄3 ̄)づ╭❤~无法创建Excel对象,可能您的机子未安装Excel");                return false;            }            excel.Visible = isShowExcle;            if (gridView.Rows.Count == 0)            {                return false;            }            //创建Excel对象            //if (excel == null)            //{            //    MessageBox.Show("(づ ̄3 ̄)づ╭❤~无法创建Excel对象,可能您的机子未安装Excel");            //    return false;            //}            //excel.Application.Workbooks.Add(true);            Microsoft.Office.Interop.Excel.Workbook wbNewWrkBk = excel.Workbooks.Add(true);            //生成字段名称            for (int i = 0; i < gridView.ColumnCount; i++)            {                excel.Cells[1, i + 1] = gridView.Columns[i].HeaderText;            }            //填充数据            for (int i = 0; i < gridView.RowCount - 1; i++)   //循环行            {                for (int j = 0; j < gridView.ColumnCount; j++) //循环列                {                    if (gridView[j, i].ValueType == typeof(string))                    {                        excel.Cells[i + 2, j + 1] = "'" + gridView.Rows[i].Cells[j].Value.ToString();                    }                    else                    {                        excel.Cells[i + 2, j + 1] = gridView.Rows[i].Cells[j].Value.ToString();                    }                }            }            //excel.Workbooks.Add(true).Save();            //设置禁止弹出保存和覆盖的询问提示框              //excel.Application.Visible = false;            //excel.Application.DisplayAlerts = false;            //excel.Application.AlertBeforeOverwriting = false;            excel.Visible = false;            excel.DisplayAlerts = false;            excel.AlertBeforeOverwriting = false;            //保存到临时工作簿,这是VS2008时的做法,主要是Excel控件的变化,主要考虑Excel的创建模式            //excel.Application.Workbooks.Add(true).Save();            //保存文件,不允许弹出对话框,如果允许弹出,下面的值直接不改
            excel.Worksheets.Application.Visible = false;            excel.DisplayAlerts = false;            excel.AlertBeforeOverwriting = false;            //excel.Save(@SelPathtxtX.Text + "\\" + @FileNametxtX.Text + ".xlsx");             //for(int iShtIndx = 0;iShtIndx < excel.Workbooks.Count;++iShtIndx)            //{            //}            //excel.Worksheets.Count  //SaveAs是另存为的,然后Save是直接保存
           wbNewWrkBk.SaveAs(@SelPathtxtX.Text + "\\" + @FileNametxtX.Text + ".xlsx");            wbNewWrkBk.Close();            excel.Workbooks.Close();            excel.Quit();            return true;


0 0
原创粉丝点击