开始写教师端程序,首先要实现导入EXCEL文件,读取数据后再添加到mysql数据库。wxWidgets提供了wxAutomationObject类,用来调用OLE automation的方法。网上找到一篇文章关于如何使用wxWidgets读取Excel文件《wxWidgets读取Excel数据的方法》。

模仿了一下,虽然能正确读取Excel文件,但是用了close方法后,却发现不能关闭进程。查了下百度,类似的情况很多。解决方法也是多种多样。例如有个人写的很简短,却比贴代码的人更易懂,他是这样回复的:

// 关闭进程

mySheet = null;myBook = null;myExcel.Quit();

myExcel = null;

先释放工作表,再释放工作簿,最后释放EXCEL对象,应该说跟C++的类差不多,释放顺序跟创建顺序相反,而上面一篇文章只释放了Excel对象,估计写文章的作者使用程序后没有去尝试再次打开文件。下列代码只是测试,提交到数据库还需要添加代码。void teacherFrame::OnToolBarItem1Clicked(wxCommandEvent& event)

{

wxFileDialog openFileDialog(this,_("Open XLS file"), "", "",

"XLS files(*.xls)|*.xls|XLSX files(*.xlsx)|*.xlsx",  wxFD_OPEN|wxFD_FILE_MUST_EXIST);

if(openFileDialog.ShowModal() == wxID_CANCEL)

return;

wxAutomationObject excelObj, workbook, sheet, cell;

if(!excelObj.CreateInstance("Excel.Application")){

wxMessageBox("创建Excel对象失败!", "错误", wxOK);

return;

}

excelObj.CallMethod("workbooks.open",openFileDialog.GetPath());

if(!excelObj.GetObject(workbook,"ActiveWorkBook")){

wxMessageBox("创建workbook对象失败!", "错误", wxOK);

return;

}

wxVariant   param1[1];

param1[0]=1L;

if(!workbook.GetObject(sheet, "Sheets",1,param1)){   //打开第一个工作表

wxMessageBox( "创建sheet对象失败 ","错误",wxOK);

return;

}

wxVariant   params[2];

params[0]=1L;

params[1]=3L;

if(!sheet.GetObject(cell, "cells",2,params)){     //选择第一行第三列

wxMessageBox( "创建Cell对象失败! ", "错误 ",wxOK);

return;

}

wxVariant   x1=cell.GetProperty( "Value");

wxMessageBox(x1.GetString(),"test");

sheet.CallMethod("close");

workbook.CallMethod("close");

excelObj.CallMethod( "close");

}

XLSX文件格式是后来添加上去的,发现也能读取,估计XLS和XLSX差不多吧。

这里用了wxFileDialog类用来打开文件,构造函数如下:wxFileDialog::wxFileDialog(wxWindow *parent,

const wxString &message = wxFileSelectorPromptStr,

const wxString &defaultDir = wxEmptyString,

const wxString &defaultFile = wxEmptyString,

const wxString &wildcard = wxFileSelectorDefaultWildcardStr,

longstyle = wxFD_DEFAULT_STYLE,

const wxPoint &pos = wxDefaultPosition,

const wxSize &size = wxDefaultSize,

const wxString &name = wxFileDialogNameStr

)

Constructor.

Use ShowModal() to show the dialog.Parameters

parentParent window.

messageMessage to show on the dialog.

defaultDirThe default directory, or the empty string.

defaultFileThe default filename, or the empty string.

wildcardA wildcard, such as "*.*" or "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif". Note that the native Motif dialog has some limitations with respect to wildcards; see the Remarks section above.

styleA dialog style. See wxFD_* styles for more info.

posDialog position. Not implemented.

sizeDialog size. Not implemented.

nameDialog name. Not implemented.

第一个参数:父窗口指针

第二个参数:对话框标题

第三个参数:默认打开路径或者为空,参数为空的时候打开是上次打开的路径

第四个参数:默认的文件名或者为空,为空当然就是不指定了

第五个参数:打开文件的类型。形如BMP files(*.bmp)|*.bmp ,  BMP files(*.bmp)对应*.bmp ,如果有多个文件类型用‘ | ’ 连接 。

第六个参数:对话框风格

第七、八、九个参数:不需要设置

wxwidgets mysql_wxWidgets导入Excel文件详细教程相关推荐

  1. 在matlab中导入excel,Matlab导入Excel文件中的数据的详细教程分享

    操作Matlab时还不会导入Excel文件中的数据?本文就介绍了Matlab导入Excel文件中的数据的操作内容,想要学习的朋友可以看一看下文哦,相信对大家会有所帮助的. 直接点击鼠标操作导入数据 打 ...

  2. mysql数据库 导入excel_如何在MySQL数据库中导入excel文件内的数据 详细始末

    在开发项目的时候通常需要使用数据库,数据库Database是用来存储和管理数据的仓库.下面,我们以MySQL数据库为例来看看如何在数据库中导入excel文件内的数据吧. 操作方法 01 MySQL 打 ...

  3. ExcelToMySQL-批量导入Excel文件到MySQL数据库的自动化工具

    ExcelToMySQL:批量导入Excel文件到MySQL数据库的自动化工具 简介 ExcelToMySQL 是一个可以批量导入excel到数据库(mysql/oracle/sqlserver)的自 ...

  4. ExcelToOracle:批量导入Excel文件到Oracle数据库的自动化工具

    ExcelToOracle:批量导入Excel文件到Oracle数据库的自动化工具 简介 ExcelToOracle 是一个可以批量导入excel到数据库(mysql/oracle/sqlserver ...

  5. eclipse怎么导入maven项目 eclipse导入maven项目详细教程

    转自:http://www.pc6.com/infoview/Article_114542.html Eclipse怎么导入maven项目一直是困扰着大量程序猿和刚上手小白们的问题,使用eclipse ...

  6. 生信技能04 - 生信分析所需致病SNP位点Excel文件制作教程

    致病SNP位点Excel文件制作教程 在生信分析项目中,有遗传相关的项目会涉及到SNP位点的查找,将该SNP位点文件作为程序输入文件,本文将介绍如果通过NCBI查看目标基因的致病SNP位点,并制作成可 ...

  7. MYSQL中导入Excel文件

    本文阐述了一般情况下怎么在mysql中导入excel文件,作者借助工具sqlyog,也可以直接在mysql中操作. 主要步骤: 第一步:首先将excel文件打开另存为csv文件 再将其用Notepad ...

  8. 批量将文件名导入excel,步骤教程

    如何批量将文件名导入excel?面对这类问题的时候一般都是文件数量较多的情况下,文件数量较多的话,如果一个一个的将文件名复制粘贴到excel表格就需要很多的时候,这时候就需要批量将文件名导入到exce ...

  9. 导入excel文件处理流程节点的解决方案

    导入excel文件处理流程节点的解决方案 参考文章: (1)导入excel文件处理流程节点的解决方案 (2)https://www.cnblogs.com/webreport/archive/2012 ...

最新文章

  1. zabbix监控多台站点服务器
  2. poj-1979 dfs
  3. HDLBits答案(2)_Verilog向量基础
  4. Vue.js说说组件
  5. 【POJ - 2987】Firing(最大权闭合图,网络流最小割,输出方案最小,放大权值法tricks)
  6. 领域应用 | 小米在知识表示学习的探索与实践
  7. python student类_9.Python类和对象
  8. python时间的转换及比较
  9. ZZ_MODIFIED_GEEBINF 不可用
  10. 我是做php的个子矮,当一个矮个子的烦恼作文
  11. python400集视频教程-微软官方出品的400集Python精品视频教程,这正是我们急需的!...
  12. python零基础简明教程
  13. 【Java】URL下载网络资源(CloudMusic)
  14. 锡兰1.1.0现已上市
  15. 使用regexp_extract、regexp_replace函数过滤特殊字符时,不同的执行情境下(hive -e;hive -f),正则表达式的内容有变化
  16. 《Python》re模块补充、异常处理
  17. 云计算导论(第二版)李伯虎著全部课后题的答案
  18. Pytorch中DistributedSampler()中的随机因素
  19. 编写优雅的JavaScript——前言
  20. weblogic绿色版安装

热门文章

  1. ICCV2021|首届城市规模点云语义理解挑战赛启动了
  2. 学生服务器选用什么系统,学生云服务器系统选择
  3. 3D视觉原理之深度暗示(即立体感)
  4. 差异基因分析:fold change(差异倍数), P-value(差异的显著性)
  5. R语言基础与入门实践
  6. 《机器学习Python实践》——数据导入(CSV)
  7. 网络电视视频服务器所放位置,pptv网络电视中多屏互动服务器删除的具体操作步骤...
  8. 微生物所高程-郭良栋组(内附招聘)在菌根适应策略研究中取得进展
  9. SEL | 植物通过根系分泌物招募假单孢菌协助抵抗地上部病原菌侵染
  10. 第54期《SCI论文插图排版与绘制》课程欢迎你!