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



这是整体界面,要从左边的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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您想要使用MiniExcel实现WinformExcel导入到DataGridView,并且能够编辑保存到Excel,我可以给您提供一个简单的实现步骤: 1. 在Winform添加DataGridView控件,并设置其属性使其可编辑; 2. 引入MiniExcel组件,并在代码使用MiniExcelExcel数据读取到DataTable; 3. 将DataTable的数据绑定到DataGridView; 4. 在DataGridView编辑完数据后,将其保存到Excel,同样使用MiniExcel实现。 下面是示例代码,供您参考: ```c# using MiniExcel; using System; using System.Data; using System.Windows.Forms; namespace ExcelToDataGridView { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // 读取Excel数据到DataTable DataTable dt = MiniExcel.Query("test.xlsx", "Sheet1").ToDataTable(); // 将DataTable的数据绑定到DataGridView dataGridView1.DataSource = dt; } private void btnSave_Click(object sender, EventArgs e) { // 获取DataGridView的数据 DataTable dt = (DataTable)dataGridView1.DataSource; // 将数据保存到Excel MiniExcel.Save(dt).ToExcel("test.xlsx", "Sheet1", true); } } } ``` 在上面的代码,我们使用MiniExcel的Query方法读取Excel数据,ToDataTable方法将数据转换为DataTable对象,然后将数据绑定到DataGridView。在保存数据时,我们使用MiniExcel的Save方法将数据保存到Excel,ToExcel方法指定保存的文件名和工作表名,最后一个参数指定是否覆盖已有的数据。 希望这个示例能够帮助您实现WinformExcel导入到DataGridView,并且能够编辑保存到Excel

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值