编程语言
首页 > 编程语言> > 如何使用Interop C#隐藏Excel列和行

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

作者:互联网

我创建了一个简单的库存界面,它将从我的界面上的数据网格视图中访问和显示数据,然后通过按钮点击将信息发送到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语句,如:列(“C”).删除或列(3).EntireColumn.Delete或列( “F:K”)删除.类似的语法可能适用于:Rows(3).Delete.

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

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

希望这可能有所帮助.

标签:c,excel,office-interop,excel-interop,worksheet
来源: https://codeday.me/bug/20190611/1220196.html