把dataGridView数据保存到已有的Excel表中

//先添加引用,步骤:1,引用--COM--Microsoft Excel 14.0 Object Library //14.0是2010版
// 2,using Excel = Microsoft.Office.Interop.Excel;
//// 3,using Microsoft.Office.Interop.Excel;
// 4,using System.Reflection;
private void button1_Click(object sender, EventArgs e)
{
Excel.Application xApp = null;//声明Excel程序
Excel.Workbook xBook = null;//声明工作薄
Excel.Worksheet xSheet = null;//声明工作表
Excel.Range cells = null;//声明单元格
try
{
if (dataGridView1.Rows.Count == 0) return;//判断控件是否有数据,没有就返回
xApp = new Excel.Application();//实例化Excel
xApp.Visible = false;//设置是否可见
xApp.ScreenUpdating = false;
xBook = xApp.Workbooks.Open(@"E:\盘点.xlsm");//获取要写入EXCEL表的存放路径
xSheet = xBook.Sheets[1];//把工作表1赋值给变量
cells = xSheet.Cells;//把工作表1中的单元格集合赋值给变量
int y = xSheet.Cells[65536, 1].end[XlDirection.xlUp].row + 1;//获取excel表中有数据的最大行数+1

            //填充数据
            for (int i = 0; i < dataGridView1.RowCount - 1; i++)//遍历表格控件的所有行
            {
                for (int j = 0; j < dataGridView1.ColumnCount; j++)//遍历表格控件的所有列
                {
                    cells[y,j+1].value= dataGridView1[j, i].Value;//填充到excel表格
                }
                y++;//获取excel表中有数据的最大行数
            }
        }
        catch (Exception exception)
        {
        }
        finally
        {
            xApp.ScreenUpdating = true;
            xBook.Save();
            xSheet = null;
            xBook = null;
            xApp.Quit();//这一句非常重要,否则Excel对象不能从内存中退出
            xApp = null;
        }
        MessageBox.Show("已导出");
    }

猜你喜欢

转载自www.cnblogs.com/zhujie-com/p/12065686.html
今日推荐