如何使用Interop C#隐藏Excel列和行

我做了一个简单的库存界面,将从访问中获取数据并显示在我的界面的datagrid视图中,然后通过单击button将信息发送到Excel。 这部分工作需要,但我想删除信息发送后未使用的列和行。 我目前正在使用VS 2015.我不知道要添加什么来实现这一点。

//send to excel private void btnExport_Click(object sender, EventArgs e) { ActiveControl = txtSerial; // creating Excel Application Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application(); // creating new WorkBook within Excel application Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing); // creating new Excelsheet in workbook Microsoft.Office.Interop.Excel._Worksheet worksheet = null; // see the excel sheet behind the program app.Visible = true; // get the reference of first sheet. By default its name is Sheet1. // store its reference to worksheet worksheet = workbook.Sheets["Sheet1"]; worksheet = workbook.ActiveSheet; // changing the name of active sheet worksheet.Name = "Inventory Search"; // storing header part in Excel for (int i = 1; i < dataGridFB.Columns.Count + 1; i++) { worksheet.Cells[1, i] = dataGridFB.Columns[i - 1].HeaderText; worksheet.Cells[1, i].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.LightBlue); worksheet.Cells[1, i].Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black); worksheet.Cells[1, i].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; worksheet.Cells[1, i].Font.Size = 14; } // storing Each row and column value to excel sheet for (int i = 0; i < dataGridFB.Rows.Count - 1; i++) { for (int j = 0; j < dataGridFB.Columns.Count; j++) { worksheet.Cells[i + 2, j + 1] = dataGridFB.Rows[i].Cells[j].Value.ToString(); worksheet.Cells[i + 2, j + 1].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; worksheet.Cells[i + 2, j + 1].Font.Size = 12; worksheet.Columns["A:G"].AutoFit(); } } } 

您的问题有点太宽泛,因此答案是一般的:为了删除整个工作表列,您可以使用VBA语句,如: Columns("C").Delete, or Columns(3).EntireColumn.DeleteColumns("F:K").Delete 。 类似的语法可能适用于: Rows(3).DeleteRows(3).Delete

为了只隐藏行/列,使用如下所示的VBA语句:

 Rows("3:10").EntireRow.Hidden = True Columns("C").Hidden = True 

希望这可能有帮助。