另存为Excel文件,调试结果为未将对象引用到设置对象的实例,该如何修改呀?

public bool DataGridviewToExcel(DataGridView dtgv, bool isShowExcel)
        {
            if (dtgv.Rows.Count == 0)
            {
                return false;
            }
            Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
            excel.Application.Workbooks.Add(true);
            excel.Visible = isShowExcel;
            for (int i = 0; i < dtgv.ColumnCount; i++)
            {
                excel.Cells[1,i + 1] = dtgv.Columns[i].HeaderText;
            }
            for (int i = 0; i < dtgv.ColumnCount - 1; i++)
            {
                for (int j = 0; j < dtgv.ColumnCount; j++)
                {
                    excel.Cells[i + 2, j + 1] = dtgv[j, i].Value.ToString();
                }
            }
            return true;

        }

private void 另存为ToolStripMenuItem2_Click(object sender, EventArgs e)
        {
            DataGridviewToExcel(dataGridView1, true);
        }

 

不行,又出现了这个错误

public bool DataGridviewToExcel(DataGridView dtgv, bool isShowExcel)
        {
            if (dtgv.Rows.Count == 0)
            {
                return false;
            }
            Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
            excel.Application.Workbooks.Add(true);
            excel.Visible = isShowExcel;
            for (int i = 0; i < dtgv.ColumnCount; i++)
            {
                excel.Cells[1,i + 1] = dtgv.Columns[i].HeaderText;
            }
            for (int i = 0; i < dtgv.ColumnCount - 1; i++)
            {
                for (int j = 0; j < dtgv.ColumnCount; j++)
                {
                    excel.Cells[i + 2, j + 1] = dtgv[j, i].Value;
                }
            }
            return true;

        }

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

你代码的DataGridviewToExcel是来自那里?你还没对DataGridviewToExcel定义或实例

你将这句代码: excel.Cells[i + 2, j + 1] = dtgv[j, i].Value.ToString();

替换成下面这行:

excel.Cells[i + 2, j + 1] = dgv[j, i].Value;

如果解决了问题,记得点采纳哦。