• excel 保护Sheet


     private void OpenForEditSheet(string strFilePath, string strSheetName)
        {
            Microsoft.Office.Interop.Excel.ApplicationClass xlApp = new ApplicationClass();
            Microsoft.Office.Interop.Excel.Workbooks xlWorkbooks;
            Microsoft.Office.Interop.Excel.Workbook xlWorkbook;
            Microsoft.Office.Interop.Excel.Worksheet xlWorksheet;
            System.Type tyWorkbooks;
            System.Reflection.MethodInfo[] methods;
            object objFilePath;
            object oMissing = System.Reflection.Missing.Value;
            strFilePath = Server.MapPath(strFilePath);
            if (!System.IO.File.Exists(strFilePath))
            {
                throw new System.IO.FileNotFoundException();
                return;
            }
            try
            {
                xlApp.Visible = true;
                xlWorkbooks = xlApp.Workbooks;
                tyWorkbooks = xlWorkbooks.GetType();
                methods = tyWorkbooks.GetMethods();
                objFilePath = strFilePath;
                object Nothing = System.Reflection.Missing.Value;
                xlWorkbook = xlApp.Workbooks.Open(strFilePath, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing);
                xlWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkbook.Worksheets[strSheetName];
                foreach (Worksheet sheet in xlWorkbook.Worksheets)
                {
                    sheet.Protect("123", Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing);
                }
                foreach (Worksheet sheet in xlWorkbook.Worksheets)
                {
                    if (sheet.Name.ToUpper() == strSheetName.ToUpper())
                    {
                        sheet.Unprotect("123");
                        
                    }
                }
                xlWorksheet.Activate();
                //xlWorksheet.Visible = XlSheetVisibility.xlSheetVisible;
                //xlWorkbook.Close(oMissing, oMissing, oMissing);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                //if (xlApp != null)
                //{
                //    xlApp.Quit();
                //    System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
                //    xlApp = null;
                //}
                //GC.Collect();
            }
        }
  • 相关阅读:
    POJ 1659 Frogs' Neighborhood(度序列构图)
    poj1236
    poj1236
    有向图求强连通分量
    有向图求强连通分量
    zoj 2532(Internship )找割边
    zoj 2532(Internship )找割边
    Expedition POJ
    2016年第七届蓝桥杯C/C++ B组国赛 —— 第四题:机器人塔
    2016年第七届蓝桥杯C/C++ B组国赛 —— 第四题:机器人塔
  • 原文地址:https://www.cnblogs.com/TNTZWC/p/1945134.html
Copyright © 2020-2023  润新知