MYSQL数据导入EXCEL

//

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;
}

时间: 2024-10-10 02:52:21

MYSQL数据导入EXCEL的相关文章

excel数据 入库mysql 和 mysql数据 导入excel文件

1.excel数据入库mysql 首先准备excel文件, 标红的地方需要留意,一个是字段名所在行,一个表名对应页: 然后私用mysql工具 navicat, 选择数据库,然后导入文件, 选中相应execl文件,即可导入. 栏位名行  对应excel文件中,字段名所在的行. 第一个数据行  对应excel文件中,第一行数据所在的行. ----------------------------------------------------------------------------------

MySQL批量导入Excel数据

MySQL批量导入Excel数据 1.确定需要导入数据的表名称以及字段,然后在新建的Excel表中,按照表字段正确排序:(注:(Excel文件的名称最好和数据库的名称一致,sheet表的名字最好和表名称一致,方便需要导入多张表数据时一一对应)) 2.在Excel表中,正确填写需要导入的数据,一行数据对应着数据库表中的一行记录:(注:各个字段的格式要求需要和数据库中的限制一样,避免出现差错) 3.收集好需要导入的数据后,点击保存.(注:导入的时候,Excel文件处于打开状态) 4.选中需要导入数据

mysql数据导入到sqlite数据

在做程序时,sqlite数据很方便.用mysql数据导出到sqlite的步骤:(用csv文件过渡) -------------------------------  先导出到csv文件  ------------------------- 1.用navicat软件将mysql数据导出到txt文件. 2.注意选择“包含列标题”(字段名).“栏位定界符”(csv文件使用逗号). 3.把所有的txt文件转换为utf-8编码. 4.写一个rename.bat(ren *.txt *.csv),全部统一改

PHP导出MySQL数据到Excel文件

PHP导出MySQL数据到Excel文件 转载 常会碰到需要从数据库中导出数据到Excel文件,用一些开源的类库,比如PHPExcel,确实比较容易实现,但对大量数据的支持很不好,很容易到达PHP内存使用上限.这里的方法是利用fputcsv写CSV文件的方法,直接向浏览器输出Excel文件. ? 1 <br><!--?php// 输出Excel文件头,可把user.csv换成你要的文件名header('Content-Type: application/vnd.ms-excel');he

通过模板将数据导入EXCEL

在EXCEL模板里设置好样式和格式 点击事件 private void btnReport_Click(object sender, EventArgs e)        {            //将数据导入Excel中并设置Excel基本样式            ExcelHandle excelHandle = new ExcelHandle();            excelHandle.GenerateStudentsReports(this.dgvStudents);   

使用 sqoop 将mysql数据导入到hive(import)

Sqoop 将mysql 数据导入到hive(import) 1.创建mysql表 CREATE TABLE `sqoop_test` ( `id` int(11) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 插入数据 2.hive 建表 hive> create external table sqoop_test

C#将SQL数据库中数据导入Excel中,并将Excel中反导入SQL数据库中

实际的开发中,我们会经常遇到数据的转化的需要,将Excel中的数据转入到SQL中,或将SQL在数据库表中的数据导入到Excel中.代码如下: Code using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windo

如何将页面上的数据导入excel中

网上关于页面数据导入excel的文章很多,但是大部分都是关于 ActiveXObject 对象,可是ActiveXObject 对象是只支持IE的,可我连IE11也测试了,还是无法识别,又查到消息,好像该对象只支持IE7,IE8,所以果断放弃. 继续查找各大论坛,终于找到JsExcelXml的插件, <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></

C#变成数据导入Excel和导出Excel

excel 基础 •整个excel 表格叫工作表:workbook:工作表包含的叫页:sheet:行:row:单元格:cell. •excel 中的电话号码问题,看起来像数字的字符串以半角单引号开头就没问题了. •使用区域(usedrange):用excel 表的时候不一定是从最左上角的单元格开始用,为了减小文件尺寸,有使用区域的概念,excel 只存储使用区域. 程序处理excel 的技术 •ole automation:程序启动一个excel 进程,然后和excel 进程进行通讯来进行exc