zoukankan      html  css  js  c++  java
  • C++ 保存Excel文件(带密码保护)

    最近有客户需求报表保存为xls的功能,需要保存的文件设置密码保护,特进行尝试!

    Workbook.SaveAs method (Excel)

    参数详情:https://docs.microsoft.com/en-us/office/vba/api/excel.workbook.saveas

     C++ Code 
    1
    2
    3
    4
    5
    6
     
    void SaveAs(VARIANT &Filename, VARIANT &FileFormat, VARIANT &Password, VARIANT &WriteResPassword, VARIANT &ReadOnlyRecommended, VARIANT &CreateBackup, long AccessMode, VARIANT &ConflictResolution, VARIANT &AddToMru, VARIANT &TextCodepage, VARIANT &TextVisualLayout, VARIANT &Local)
    {
        
    static BYTE parms[] = VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_I4 VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT ;
        InvokeHelper(0x785, DISPATCH_METHOD, VT_EMPTY, 
    NULL, parms, &Filename, &FileFormat, &Password, &WriteResPassword, &ReadOnlyRecommended, &CreateBackup, AccessMode, &ConflictResolution, &AddToMru, &TextCodepage, &TextVisualLayout, &Local);
    }

    调用实例:

     C++ Code 
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    BOOL bReadOnlyRecommended = TRUE;
    BOOL bCreateBackup = TRUE;
    BOOL bLocal = TRUE;
    CString strXlsPath = _T("C:\test.xls");
    m_book.SaveAs(  _variant_t(strXlsPath),                         
    // Filename
                    _variant_t(-4143)/*xlWorkbookNormal*/,          // FileFormat
                    _variant_t(_T("123")),                          // Password
                    _variant_t(_T("123")),                          // WriteResPassword
                    _variant_t(bReadOnlyRecommended),               // ReadOnlyRecommended
                    _variant_t(bCreateBackup),                      // CreateBackup
                    _variant_t(2)/*xlShared*/,                      // AccessMode
                    _variant_t(2)/*xlLocalSessionChanges*/,         // ConflictResolution
                    vtMissing, vtMissing, vtMissing,
                    _variant_t(bLocal));                            
    // Local

    最终成功打开:

  • 相关阅读:
    eclipse下切换svn用户
    Netty实现服务端客户端长连接通讯及心跳检测
    Spring Batch系列总括(转载)
    SQL中的Null深入研究分析
    MySQL报错“1366
    Memcache学习php完整一例
    Memcache学习笔记
    递归和迭代区别
    解决textarea 输出有空格问题
    解决mysql安装出现error Nr.1045问题
  • 原文地址:https://www.cnblogs.com/MakeView660/p/10191031.html
Copyright © 2011-2022 走看看