最近客户要求把数据报表导人EXECL后,防此导人到EXECL后,有又到EXECL里把数据改掉。DELPHI是否有这样的控制。

解决方案 »

  1.   

    導出之後 設文件只讀! SetFileAttributes('c:\a.xls',FILE_ATTRIBUTE_READONLY );
      

  2.   

    先将下面的拷贝到窗体上:
    object ExcelApplication1: TExcelApplication
      AutoConnect = False
      ConnectKind = ckRunningOrNew
      AutoQuit = False
      Left = 200
      Top = 424
    end
    object ExcelWorksheet1: TExcelWorksheet
      AutoConnect = False
      ConnectKind = ckRunningOrNew
      Left = 232
      Top = 424
    end
    object ExcelWorkbook1: TExcelWorkbook
      AutoConnect = False
      ConnectKind = ckRunningOrNew
      Left = 264
      Top = 424
    end
    代码如下:
      ExcelApplication1.Connect;
      ExcelApplication1.Visible[0]:=true;
      ExcelApplication1.Workbooks.Add(null,0);
      Excelworkbook1.ConnectTo(ExcelApplication1.workbooks[ExcelApplication1.Workbooks.count]);
      Excelworksheet1.ConnectTo(ExcelWorkbook1.Sheets[1] as _worksheet);
    //  ExcelWorkSheet1.Unprotect('fxfzp');
      ExcelWorkSheet1.Cells.Locked:=false;
      ExcelWorkSheet1.Range['B3', 'M20'].Locked:=true;
      ExcelWorkSheet1.Protect('fxfzp');
      //最后断开连接
      Excelworksheet1.Disconnect;
      Excelworkbook1.Disconnect;
      ExcelApplication1.Disconnect;效果是B3到M20的矩形单元格被保护。