开始写教师端程序,首先要实现导入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_CA