我想把输出的数据按照第一列数据相同的合并单元格。下面是我的代码,错误类型是object未包含r.get_range。
private void button_print_Click(object sender, EventArgs e) //打印excel
{
int index_head = 0;
int index_tail = 0;
Excel.Range r;
Excel.Application excel = new Excel.Application();
Excel.Workbook book = excel.Workbooks.Add(true);
Excel.Worksheet sheet = (Excel.Worksheet)book.ActiveSheet;
for (int i = 0; i < dataGridView_selecteddata.Rows.Count; i++)
{
if (i != 0)
{
if (dataGridView_selecteddata.Rows[i].Cells[0].Value == dataGridView_selecteddata.Rows[i - 1].Cells[0].Value)
{
index_tail++;
}
else
{
r=sheet.get_Range(sheet.Cells[index_head+1,1],sheet.Cells[index_tail+1,1]);
r.MergeCells = true;
index_head = i;
index_tail = i;
}
}
for (int j = 0; j < dataGridView_selecteddata.Columns.Count; j++)
{
sheet.Cells[i + 1, j + 1] = dataGridView_selecteddata.Rows[i].Cells[j].Value;
}
}
excel.Visible = true;
book.Save();
book.SaveAs("D:sqldataoutput", Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
book.Close(true, Type.Missing, Type.Missing);
excel.Quit();
}