【发布时间】:2016-10-07 04:32:05
【问题描述】:
这里的代码在我的列表框(employeebox) 中获取一个名称并删除该工作表上的整行。这有效,没有错误。我的问题是我有 19 个不同的工作表需要检查,但我只能用这段代码一次检查 1 个。“Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook .Worksheets[2];".. 有什么方法可以在单击“删除”按钮后检查所有工作表?我非常感谢任何人的帮助。
private void delete_Click(object sender, EventArgs e)
{
//create excel
Excel.Application xlexcel = new Excel.Application();
Excel.Workbook xlWorkBook = xlexcel.Workbooks.Open(@"C:\\SAMPLE.xlsx");
Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets[2];
//search within excel
Excel.Range usedRanage = xlWorkSheet.UsedRange;
foreach (Excel.Range row in usedRanage)
{
//grab name once selected in box
if (employeeBox.SelectedItem.Equals(row.Value))
{
row.EntireRow.Delete(Excel.XlDeleteShiftDirection.xlShiftUp);
MessageBox.Show("Employee Deleted.");
}
}
xlexcel.DisplayAlerts = false;
xlWorkBook.SaveAs("C:\\SAMPLE.xlsx", Excel.XlFileFormat.xlWorkbookDefault, Type.Missing,
Type.Missing, false, false, Excel.XlSaveAsAccessMode.xlNoChange,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
xlWorkBook.Close();
xlexcel.Quit();
releaseObject(xlexcel);
releaseObject(xlWorkBook);
releaseObject(xlWorkSheet);
}
【问题讨论】:
-
从一张到另一张有什么问题?
-
您好,我只是一个有趣的编码员...您将不得不遍历工作簿中的所有现有工作表...类似于.... foreach(Excel.Worksheet 工作表在工作簿.工作表)
-
@DangerZone - 代码太多了。
-
您好! @JohnG 我也是这么想的.. 哪个读起来像行正确?
-
如果代码太多,请将其分解为另一种方法,以便您可以重复它...循环您的工作表以执行相同的事情不应该采取“方式太很多”你所做的额外代码。
标签: c# excel visual-studio listbox