C#操作EXCEL表中,改变单元格内容的方法:
一种是通过单元格所在行、列来确定
eg:
...
private Excel.Worksheet sheetObj;
sheetObj.Cells[RowIndex,ColIndex] = UpdateStr;
...
但,如何通过单元格名(如"D2")来修改呢?请指教!谢谢!

解决方案 »

  1.   

    //新建一个只含有一个表单的Excel文件,并对其内单元格进行操作示例:
    /*
                Microsoft.Office.Interop.Excel.Application newXls = new Microsoft.Office.Interop.Excel.Application();
                Microsoft.Office.Interop.Excel.Workbook obj = newXls.Application.Workbooks.Add(true);
                newXls.Cells[1, 2] = "hei,chrovan!";
               // newXls.Workbooks.Add(@"f:\表.xls");
                newXls.Visible = false;
               obj.SaveAs(@"f:\xx.xls", Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel9795, null, null, false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, null, null, null, null,null);
               newXls.Application.Quit();
    */
      

  2.   

    谢谢,楼上这位仁兄,
    你说的这种方法:
    newXls.Cells[1, 2] = "hei,chrovan!";
    我已知道,我是想除此(行、列)之外,通过单元格名称("D2"等),来进行修改????
    eg:实现如下方法:
    public void EditCellContent( string RangeName, string UpdateStr )我做这些是为了想写一个操作EXCEL名的类,这样以后用起来也方便些。谢谢!
    另外为何我这个删除Sheet的方法不能正常删除呢?private Excel.Application appObj;
    private Excel.Workbook bookObj;
    private Excel.Worksheet sheetObj;//通过Sheet名称删除Sheet
    public bool DeleteSheet( string sheetName )
    {
    bool hasSheet = false;
    for(int i=0; i<appObj.Worksheets.Count; i++)
    {
    sheetObj = (Excel.Worksheet)appObj.Worksheets[i+1];
    if (sheetObj.Name == sheetName)
    {
    sheetObj.Delete();
    hasSheet = true;
    break;
    }
    }
    return hasSheet;
    }//通过Sheet索引删除Sheet
    public bool DeleteSheet( int index )
    {
    bool hasSheet = false;
    if ( appObj.Worksheets.Count < index )
    hasSheet = false;
    else
    {
    sheetObj = (Excel.Worksheet)appObj.Worksheets[index];
    sheetObj.Delete();
    hasSheet = true;
    }
    return hasSheet;
    }
    请指教!
      

  3.   

    修改单元格的另一方法已实现
    public void EditCellContent( string RangeName, string UpdateStr )
    {
    sheetObj.get_Range(RangeName, RangeName).Value2 = UpdateStr;
    }
    但删除哪里存在问题呢?请指教 !
      

  4.   

    UpdateStr 参数传入null就可以了
      

  5.   

    楼上这位仁兄,我是说删除某一个sheet呀!不是说删除某一个单元格的内容。