




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
include stdafx h include ReadWriteExcel h include ReadWriteExcelDlg h include DlgProxy h include afxdialogex h ifdef DEBUG define new DEBUG NEW endif CReadWriteExcelDlg dialog int Row Line CString Content IMPLEMENT DYNAMIC CReadWriteExcelDlg CDialogEx CReadWriteExcelDlg CReadWriteExcelDlg CWnd pParent NULL CDialogEx CReadWriteExcelDlg IDD pParent m line T m row T m hIcon AfxGetApp LoadIcon IDR MAINFRAME m pAutoProxy NULL CReadWriteExcelDlg CReadWriteExcelDlg If there is an automation proxy for this dialog set its back pointer to this dialog to NULL so it knows the dialog has been deleted if m pAutoProxy NULL m pAutoProxy m pDialog NULL void CReadWriteExcelDlg DoDataExchange CDataExchange pDX CDialogEx DoDataExchange pDX DDX Text pDX IDC EDIT1 m line DDX Text pDX IDC EDIT2 m row DDX Text pDX IDC EDIT3 m content DDX Control pDX IDC LIST1 m Grid BEGIN MESSAGE MAP CReadWriteExcelDlg CDialogEx ON WM CLOSE ON WM PAINT ON WM QUERYDRAGICON ON BN CLICKED IDC creat Set the icon for this dialog The framework does this automatically when the application s main window is not a dialog SetIcon m hIcon TRUE Set big icon SetIcon m hIcon FALSE Set small icon TODO Add extra initialization here 设 置 列 D表 视 图 的 扩 展1风 格 m Grid SetExtendedStyle LVS EX FLATSB 扁 a平 风 格 显 示 滚 动 条 LVS EX FULLROWSELECT 允 许 整 行D选 中D LVS EX HEADERDRAGDROP 允 许 整 列 D拖 动 LVS EX ONECLICKACTIVATE 单 击 选 中D项 LVS EX GRIDLINES 画 出 网 格 线 设 置 表 头 m Grid InsertColumn 0 T A LVCFMT LEFT 50 m Grid InsertColumn 1 T B LVCFMT LEFT 50 m Grid InsertColumn 2 T C LVCFMT LEFT 50 m Grid InsertColumn 3 T D LVCFMT LEFT 50 m Grid InsertColumn 4 T E LVCFMT LEFT 50 m Grid InsertColumn 5 T F LVCFMT LEFT 50 m Grid InsertColumn 6 T G LVCFMT LEFT 50 m Grid InsertColumn 7 T H LVCFMT LEFT 50 m Grid InsertColumn 8 T I LVCFMT LEFT 50 m Grid InsertColumn 9 T J LVCFMT LEFT 50 m Grid InsertColumn 10 T K LVCFMT LEFT 50 m Grid InsertColumn 11 T L LVCFMT LEFT 50 m Grid InsertColumn 12 T M LVCFMT LEFT 50 m Grid InsertColumn 13 T N LVCFMT LEFT 50 m Grid InsertColumn 14 T O LVCFMT LEFT 50 m Grid InsertColumn 15 T P LVCFMT LEFT 50 m Grid InsertColumn 16 T Q LVCFMT LEFT 50 m Grid InsertColumn 17 T R LVCFMT LEFT 50 向 列 D表 中D插 入 数 y据Y m Grid InsertItem 0 T m Grid InsertItem 1 T m Grid InsertItem 2 T m Grid InsertItem 3 T m Grid InsertItem 4 T m Grid InsertItem 5 T m Grid InsertItem 6 T m Grid InsertItem 7 T m Grid InsertItem 8 T m Grid InsertItem 9 T m Grid InsertItem 10 T m Grid InsertItem 11 T m Grid InsertItem 12 T m Grid InsertItem 13 T m Grid InsertItem 14 T m Grid InsertItem 15 T m Grid InsertItem 16 T m Grid InsertItem 17 T m Grid InsertItem 18 T m Grid InsertItem 19 T return TRUE return TRUE unless you set the focus to a control If you add a minimize button to your dialog you will need the code below to draw the icon For MFC applications using the document view model this is automatically done for you by the framework void CReadWriteExcelDlg OnPaint if IsIconic CPaintDC dc this device context for painting SendMessage WM ICONERASEBKGND reinterpret cast dc GetSafeHdc 0 Center icon in client rectangle int cxIcon GetSystemMetrics SM CXICON int cyIcon GetSystemMetrics SM CYICON CRect rect GetClientRect int x rect Width cxIcon 1 2 int y rect Height cyIcon 1 2 Draw the icon dc DrawIcon x y m hIcon else CDialogEx OnPaint The system calls this function to obtain the cursor to display while the user drags the minimized window HCURSOR CReadWriteExcelDlg OnQueryDragIcon return static cast m hIcon Automation servers should not exit when a user closes the UI if a controller still holds on to one of its objects These message handlers make sure that if the proxy is still in use then the UI is hidden but the dialog remains around if it is dismissed void CReadWriteExcelDlg OnClose if CanExit CDialogEx OnClose void CReadWriteExcelDlg OnOK if CanExit CDialogEx OnOK void CReadWriteExcelDlg OnCancel if CanExit CDialogEx OnCancel BOOL CReadWriteExcelDlg CanExit If the proxy object is still around then the automation controller is still holding on to this application Leave the dialog around but hide its UI if m pAutoProxy NULL ShowWindow SW HIDE return FALSE return TRUE void CReadWriteExcelDlg OnBnClickedcreat TODO Add your control notification handler code here 获 得 当 前 程 序 所 在 的 路 径 excel文 件t在 此 路 径 下 char CurrentProgramPath MAX PATH GetCurrentDirectory MAX PATH CurrentProgramPath CString strFile CurrentProgramPath ExcelFilePathName表 示 excel文 件t的 路 径 和 文 件t名 strFile Data xlsx COleVariant covTrue short TRUE covFalse short FALSE covOptional long DISP E PARAMNOTFOUND VT ERROR HRESULT hr hr CoInitialize NULL if FAILED hr AfxMessageBox T Failed to call Coinitialize CApplication app CWorkbook book CWorkbooks books CWorksheet sheet CWorksheets sheets CRange range CFont font if app CreateDispatch T Excel Application MessageBox T Error Creat Excel Application Server Faile books app get Workbooks book books Add covOptional sheets book get Worksheets sheet sheets get Item COleVariant short 1 下 面 两 行D 是 向 A1中D写 入 Yeah I can write data to excel range sheet get Range COleVariant T A1 COleVariant T H1 range put Value2 COleVariant T Yeah 设 置 列 D宽 range sheet get Range COleVariant T A1 COleVariant T J1 range put ColumnWidth variant t long 5 显 示 表 格 app put Visible TRUE 保 存 book SaveCopyAs COleVariant strFile book put Saved true 结 尾2 释 放 book ReleaseDispatch books ReleaseDispatch app ReleaseDispatch app Quit void CReadWriteExcelDlg OnBnClickedwrite TODO Add your control notification handler code here UpdateData TRUE if m line IsEmpty m row IsEmpty AfxMessageBox 行D 列 D 内 容 Y不 能 为a空 return Line strtol m line NULL 10 Row strtol m row NULL 10 if 17 Row Row 1 AfxMessageBox 注 意 a列 D的 范 围 1 17 return if 20 Line Line 0 AfxMessageBox 注 意 a行D的 范 围 1 20 return Content m content m CALL1 void CReadWriteExcelDlg m CALL1 void HRESULT hr hr CoInitialize NULL if FAILED hr AfxMessageBox T Failed to call Coinitialize 声 明 操 作 excel文 件t类 的 对 象 CApplication objApp 组 件t服 t务 器 的 各 个 classes application代 表 了 EXCEL服 t务 器 CWorkbooks objBooks workbooks表 示 整 个 Excel服 t务 器 表 现 为a一 个 xls文 件t 里 所 有 D的 表 可 以 通 过y 新 建 得 到 多 个 表 即 MDI程 序 里 的 一 个 视 窗 一 样 所 有 D的 视 窗 就 是 workbooks CWorkbook objBook workbook就 是 一 个 表 相 当 于 MDI中D的 一 个 视 窗 CWorksheets objSheets worksheets表 示 所 有 D的 表 单 每 个 表 都 可 能 有 D很 多 表 单 建 立 一 个 Excel文 件t之 后 打 开a 可 以 看 到 有 Dsheet1 sheet2等 所 有 D这a些 sheetn就 组 成 了 worksheets CWorksheet objSheet worksheet就 表 示 一 个 表 单 CRange objRange usedRange Range 表 示 元a素 的 集 合 LPDISPATCH lpDisp LPDISPATCH就 是 一 个 指 向 excel对 象 的 指 针 COleVariant VOptional long DISP E PARAMNOTFOUND VT ERROR 检 测a电 脑 上 是 否 安 2装 了 Excel程 序 if objApp CreateDispatch Excel Application 启 动 服 t务 器 AfxMessageBox 无T法 启 动 Excel服 t务 器 return 获 得 当 前 程 序 所 在 的 路 径 excel文 件t在 此 路 径 下 char CurrentProgramPath MAX PATH GetCurrentDirectory MAX PATH CurrentProgramPath CString ExcelFilePathName CurrentProgramPath ExcelFilePathName表 示 excel文 件 t的 路 径 和 文 件t名 ExcelFilePathName Data xlsx objBooks AttachDispatch objApp get Workbooks 此 句 的 功 能 objBooks objApp GetWorkbooks 一 样 打 开aExcel文 件t 如 果 前 面 设 置 了 objApp SetVisible TRUE 所 以 下 句 命 令 执 行D后 显 示 这a个 excel文 件t的 数 y据Y 如 果 前 面 没 有 D设 置 objAppApp SetVisible TRUE 下 句 命 令 执 行D 后 不 会 显 示 这a个 Excel文 件t的 数 y据Y lpDisp objBooks Open ExcelFilePathName VOptional VOptional VOptional VOptional VOption al VOptional VOptional VOptional VOptional VOptional VOptional VOptional VOptional VOptio nal objBook AttachDispatch lpDisp 设 定 当 前 的 工 作 表 sheet objSheets AttachDispatch objBook get Worksheets lpDisp objBook get ActiveSheet objSheet AttachDispatch lpDisp 获 取 excel中D的 数 y据Y objRange AttachDispatch objSheet get Cells 判D断 要 a输 入 的 内 容 Y是 否 为a空 if m content IsEmpty objRange put Item COleVariant long Line COleVariant long Row COleVariant AfxMessageBox 删 除y了 该 格 内 容 Y 追 加 内 容 Y objRange put Item COleVariant long Line COleVariant long Row COleVariant Content objBook Save 如 果 打 开a的 这a个 excel文 件t被 其 它 的 进 程 已 经 打 开a了 此 句 代 码 执 行D后 会 出 现 提 示 是 否 保 存 的 对 话 框 如 果 打 开a的 这a个 excel文 件t被 其 它 的 进 程 使 1用 只 读 方 式 已 经 打 开a了 此 句 代 码 执 行D后 不 会 出 现 提 示 是 否 保 存 的 对 话 框 objApp SetAlertBeforeOverwriting FALSE 取 消 提 示 是 否 保 存 的 对 话 框 objApp SetDisplayAlerts FALSE 取 消 提 示 是 否 保 存 的 对 话 框 把 此 文 件t另 存 为a别 e的 文 件t名 objBook SaveAs COleVariant ExcelFilePathName VOptional VOptional VOptional VOptional VOptional 0 VOptional VOptional VOptional VOptional VOptional objBook Close VOptional COleVariant ExcelFilePathName VOptional objBooks Close objApp Quit void CReadWriteExcelDlg OnBnClickedread TODO Add your control notification handler code here HRESULT hr hr CoInitialize NULL if FAILED hr AfxMessageBox T Failed to call Coinitialize CApplication app application代 表 了 EXCEL服 t务 器 CWorkbooks books workbooks表 示 整 个 Excel服 t务 器 表 现 为a一 个 xls 文 件t 里 所 有 D的 表 可 以 通 过y 新 建 得 到 多 个 表 即 MDI程 序 里 的 一 个 视 窗 一 样 所 有 D的 视 窗 就 是 workbooks CWorkbook book workbook就 是 一 个 表 相 当 于 MDI中D的 一 个 视 窗 CWorksheets sheets worksheets表 示 所 有 D的 表 单 每 个 表 都 可 能 有 D很 多 表 单 建 立 一 个 Excel文 件t之 后 打 开a 可 以 看 到 有 Dsheet1 sheet2等 所 有 D这a些 sheetn就 组 成 了 worksheets CWorksheet sheet worksheet就 表 示 一 个 表 单 CRange objRange usedRange Range 表 示 元a素 的 集 合 COleVariant covOptional long DISP E PARAMNOTFOUND VT ERROR VARIANT ret 检 测a电 脑 上 是 否 安 2装 了 Excel程 序 if app CreateDispatch Excel Application AfxMessageBox 无T法 启 动 Excel服 t务 器 return books app get Workbooks 获 得 当 前 程 序 所 在 的 路 径 excel文 件t在 此 路 径 下 char CurrentProgramPath MAX PATH GetCurrentDirectory MAX PATH CurrentProgramPath CString ExcelFilePathName CurrentProgramPath ExcelFilePathName表 示 excel文 件t的 路 径 和 文 件t名 ExcelFilePathName Data xlsx book books Open ExcelFilePathName covOptional variant t true covOptional covOptional covOptional covOptional covOptional covOptional covOptional covOptional covOptional covOptional covOptional covOptional sheets book get Worksheets sheet s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 橡胶清洁用品创新创业项目商业计划书
- 森林废弃物资源化创新创业项目商业计划书
- 无公害蔬菜冻干产品加工创新创业项目商业计划书
- 水稻功能复合材料创新创业项目商业计划书
- 海鲜餐厅个性化定制服务创新创业项目商业计划书
- 2025年电玩行业研究报告及未来行业发展趋势预测
- 2025自考专业(护理)通关考试题库含答案详解【突破训练】
- 手部肌腱解剖图及课件
- 2025年丙烯酰胺行业研究报告及未来行业发展趋势预测
- 2025年2,6-二氯苯甲酰氯行业研究报告及未来行业发展趋势预测
- itop-4412开发板之精英版使用手册
- 老年肌肉衰减综合征肌少症培训课件
- 原料药FDA现场GMP符合性要求与检查实践课件
- 中学生物学教学技能与实践课件
- 中国文化概论(第三版)全套课件
- 井喷失控事故案例教育-井筒工程处课件
- 《农产品质量安全》系列讲座(第一讲-农产品质量及安全)课件
- 折彩粽的手工制作ppt公开课
- 日语教程单词表(任卫平版)
- 市场调查与分析教学完整版ppt课件-全套教学教程(PPT 416页)
- 托业考试Toeic考题
评论
0/150
提交评论