我用一个dev grid 控件导出一个Excel 文件,但想要把里面的前三列锁定(这三列数据不让修改.)这个有什么办法???? 
    请教... 谢谢!

解决方案 »

  1.   

    我理解你的意思好像是设置页头,就是固定页头,即每页打印时都显示。
    如果这样的话,我建议你看一EXCEL里VBA的用法,其实,如果你会设置就很简单了。
    我印像里就一条语句。
      

  2.   

    dev grid 导出后一般需要自己在处理一下那个EXCEL文件,否则会有点点问题,比如,原来是整数列,到EXCEL里面变成文字了,导致无法进行计算。
      

  3.   

    我导出的文件 有几列数据是只允许看,不允许改动,所以要求这个功能. 这个在EXcel 用宏实现没有问题,关键是怎 么在C#下调用呢,而且是应用到指定的excel文件上去???????
      

  4.   

    先做个空excel文件,把某个列锁定了,然后在这个excel上生成内容
      

  5.   

    实现如下 :  宏文件放在 book1.xls 中,            SaveFileDialog fd = new SaveFileDialog();
                object oMissing = System.Reflection.Missing.Value;            fd.Title = "导出XLS文件";
                fd.RestoreDirectory = true;
                fd.Filter = "xls文件|*.xls";
                fd.FilterIndex = 1;
                Excel.ApplicationClass oExcel = new Excel.ApplicationClass();
                oExcel.Visible = true;
                Excel.Workbooks oBooks = oExcel.Workbooks;
                Excel._Workbook oBook = null;
                if (fd.ShowDialog() == DialogResult.OK)
                {
                    this.grdExport.ExportToXls(fd.FileName);
                }
               
                if(fd.FileName!=string.Empty)
                {
                    oBook = oBooks.Open(fd.FileName, oMissing, oMissing,
                        oMissing, oMissing, oMissing, oMissing, oMissing, oMissing,
                        oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);                // Run the macros.                RunMacro(oExcel, new Object[] { "Book1.xls!Macro2" });                //RunMacro(oExcel, new Object[]{"DoKbTestWithParameter",
                    //"Hello from C# Client."});                //Quit Excel and clean up.                oBook.Close(true, oMissing, oMissing);
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(oBook);
                    oBook = null;
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(oBooks);
                    oBooks = null;
                    oExcel.Quit();
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcel);
                    oExcel = null;
                }  这有个问题 ,  这个book1.xls 默认只能放到 "我的文档" 怎 么改Excel 默认路径....???
      

  6.   

    private void RunMacro(object oApp, object[] oRunArgs)
    {
        oApp.GetType().InvokeMember("Run",
            System.Reflection.BindingFlags.Default |
            System.Reflection.BindingFlags.InvokeMethod,
            null, oApp, oRunArgs);
    }