datagridview中显示的数据导出到Excel——用最简单的方法解决科学计数法的问题

今天一个下午就整个这一个事情,觉得这个方法很有用,写下来分享一下。

using Microsoft.Office.Interop.Excel;//引用Com

private void To_Excel()
        {
            Microsoft.Office.Interop.Excel.ApplicationClass MyExcel = new ApplicationClass();
            MyExcel.Visible = true;
            if (MyExcel == null)
            {
                MessageBox.Show("EXCEL无法启动!","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
                return;
            }

            Microsoft.Office.Interop.Excel.Workbook wBook = MyExcel.Application.Workbooks.Add(Type.Missing);
            Microsoft.Office.Interop.Excel.Worksheet wSheet=(Worksheet)wBook.Worksheets[1];
            wSheet.Name = "Excel-" + System.DateTime.Now.ToLongDateString();

            int rowCount = 0;
            int columnCount = 0;
            columnCount = this.dataGridView_Info.ColumnCount;
            rowCount = this.dataGridView_Info.RowCount;
            rowCount--;
            for (int i =0; i < columnCount; i++)
            {
                wSheet.Cells[1, i+1] = this.dataGridView_Info.Columns[i].HeaderText;//Cell[1,i+1]对于excel表,是从[1,1]开始的,因此此处必须加1,否则会报出COMException错误!
            }
            for (int i = 0; i <=rowCount; i++)//此处必须加=号,否则导出的数据少最后一行
            {
                for (int j = 1; j < columnCount; j++)
                {
                    wSheet.Cells[i + 2, j] = "'"+this.dataGridView_Info[j-1, i].Value.ToString();//i+2表示excel表中列名是i+1,数据从i+2开始,但是从datagridview获取数据是必须从j-1开始,否则datagridview中的第一列数据在excel中看不到,excel显示的数据就会从datagridview的第二列数据开始。
                }
            }
            MessageBox.Show("数据导出完毕,请保存!");

        }

 

 

 

datagridview导出到Excel中的数据太长,经常会成为科学计数法,那么在生成Excel每个单元格数据的时候就加一个单引号"'",wSheet.Cells[i + 2, j] = "'"+this.dataGridView_Info[j-1, i].Value.ToString();这个问题便迎刃而解。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值