首页 / MYSQL / MYSQL数据导入EXCEL
MYSQL数据导入EXCEL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MYSQL数据导入EXCEL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4540字,纯文字阅读大概需要7分钟。
内容图文
![MYSQL数据导入EXCEL](/upload/InfoBanner/zyjiaocheng/453/e627eaca9b03469fbda3a950d933961d.jpg)
//
using namespace Excel;
void CImportExcel::OnBnClickedButtonSelectpath()
{
// TODO: 在此添加控件通知处理程序代码
CString strTestName,strTmp,strTmpEx;
BOOL bNameValid;
((CComboBox*)GetDlgItem(IDC_COMBO_DataName))->GetWindowText(strTestName);
if (strTestName.IsEmpty())
{
bNameValid=strTmp.LoadString(IDS_TiShi);
ASSERT(bNameValid);
bNameValid=strTmpEx.LoadString(IDS_TestNameNull);
ASSERT(bNameValid);
MessageBox(strTmpEx,strTmp);
return;
}
CFileDialog fileDlg(FALSE,
NULL,
strTestName,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"Excel文件(*.xls)|*.xls||",
NULL,0,TRUE);
if (fileDlg.DoModal()==IDOK)
{
strTmp=fileDlg.GetPathName();
CString strFileExt=fileDlg.GetFileExt();
if (strFileExt.IsEmpty())
{
strTmp+=".xls";
}
CFile file;
if (file.Open(strTmp,CFile::modeCreate)==FALSE)
{
return;
}
file.Close();
if (strTmp.IsEmpty()==FALSE)
{
((CEdit *)GetDlgItem(IDC_EDIT_SavePath))->SetWindowText(strTmp);
((CButton*)GetDlgItem(IDOK))->EnableWindow(TRUE);
}
}
}
BOOL CImportExcel::ImprotDataExcel(CString strSavePath,CString strTestName)
{
if (m_DataTbNames.GetCount()<=0)
{
return FALSE;
}
if (&mysql==NULL)
{
return FALSE;
}
pProgressCtrl->SetPos(5);
_bstr_t filePath=(_bstr_t)strSavePath;
//CoInitializeEx( 0, COINIT_APARTMENTTHREADED );//这两句语句放在函数外面
//_ApplicationPtr pApp;
WorkbooksPtr pBooks;
_WorkbookPtr pBook;
SheetsPtr pSheets;
_WorksheetPtr pSheet;
RangePtr pRang;
_variant_t varTmp;
MYSQL_RES *m_res;
MYSQL_ROW m_row;
COleVariant vTrue((short)TRUE),vFalse((short)FALSE);
try
{
//pApp.CreateInstance(__uuidof(Excel::Application));
pBooks= pApp->GetWorkbooks();
pBook = pBooks->Add(_variant_t(filePath));
pSheets= pBook->GetWorksheets();
pSheet= pBook->GetActiveSheet();
pSheet->Activate();//支持一个表单
pProgressCtrl->SetPos(10);
int nRowNum=0;
int nTbCount=m_DataTbNames.GetCount();
CString strTbName,strFildName,strColName1,strColName2,strColIndex1,strColIndex2,strCurRowNum,strIndex1,strIndex2,strSql;
CString strValue1,strValue2,strTmp,strTmpValue;
int nPos=80/nTbCount;
for (int ii=0;ii<nTbCount;ii++)
{
nRowNum=1;
strCurRowNum.Empty();
strColName1.Empty();
strColName2.Empty();
strColIndex1.Empty();
strColIndex2.Empty();
strIndex1.Empty();
strIndex2.Empty();
strFildName.Empty();
strCurRowNum.Format("%d",nRowNum);
strTbName=m_DataTbNames.GetAt(ii);
GetColumnName(strTbName,strFildName,strColName1,strColName2);//动态得到列名和数据库对应的数据值的列名
if (strFildName.IsEmpty()||strColName1.IsEmpty()||strColName2.IsEmpty())
{
break;
}
GetColumnIndex(ii,strColIndex1,strColIndex2);//动态得到该列名相对应的EXCEL表中的列序号
if (ii==0)
{
pSheet->Range[COleVariant("A1")][vtMissing]->Value2=COleVariant("序号");
}
strIndex1+=strColIndex1;
strIndex1+=strCurRowNum;//(strIndex1类似B1)
strIndex2+=strColIndex2;
strIndex2+=strCurRowNum;//(strIndex1类似C1)
pSheet->Range[COleVariant(strIndex1)][vtMissing]->Value2=COleVariant(strColName1);
pSheet->Range[COleVariant(strIndex2)][vtMissing]->Value2=COleVariant(strColName2);
//数据库获取数据
strSql.Format("select %s, totalTime from %s where testName=‘%s‘order by totalTime",\
strFildName,strTbName,strTestName);
if (mysql_query(mysql,strSql)!=0)
{
return FALSE;
}
m_res=mysql_store_result(mysql);
while(m_row=mysql_fetch_row(m_res))
{
nRowNum++;
strCurRowNum.Empty();
strIndex1.Empty();
strIndex2.Empty();
strTmpValue.Empty();
strTmp.Empty();
strCurRowNum.Format("%d",nRowNum);
strIndex1+=strColIndex1;
strIndex1+=strCurRowNum;//(strIndex1类似B1)
strIndex2+=strColIndex2;
strIndex2+=strCurRowNum;//(strIndex1类似C1)
strValue1=m_row[0];//相应值
strValue2=m_row[1];//相应总时间值
strTmp.Format("A%d",nRowNum);//查询序号列是否为空,为空时写值
strTmpValue=pSheet->Range[COleVariant(strTmp)][vtMissing]->Text;
if (strTmpValue.IsEmpty())
{
strTmpValue.Format("%d",nRowNum-1);
pSheet->Range[COleVariant(strTmp)][vtMissing]->Value2=COleVariant(strTmpValue);//先序号值
}
pSheet->Range[COleVariant(strIndex1)][vtMissing]->Value2=COleVariant(strValue2);//先写时间值
pSheet->Range[COleVariant(strIndex2)][vtMissing]->Value2=COleVariant(strValue1);//往后一列写相应值
}
mysql_free_result(m_res);
pProgressCtrl->SetPos(nPos*(ii+1));
}
pBook->SaveCopyAs(COleVariant(filePath));
pBook->put_Saved(0,TRUE);
}
catch (CException* e)
{
}
pApp->Quit();
pProgressCtrl->SetPos(100);
return TRUE;
}
MYSQL数据导入EXCEL
标签:
本文系统来源:http://www.cnblogs.com/lishennan/p/4651728.html
内容总结
以上是互联网集市为您收集整理的MYSQL数据导入EXCEL全部内容,希望文章能够帮你解决MYSQL数据导入EXCEL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。