使用c语言读出Excel表格课程设计.docx
《使用c语言读出Excel表格课程设计.docx》由会员分享,可在线阅读,更多相关《使用c语言读出Excel表格课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
使用c语言读出Excel表格课程设计
课程设计(大作业)报告
信息技术学院
昆明学院课程设计(大作业)任务书
姓名:
院(系):
专业:
计算机应用技术学号:
任务起止日期:
2011.12.24
课程设计题目:
简单综合成绩计算系统
课程设计要求:
各科成绩和综合分数加减分数保存在excel表格里面,请读取excel表格的成绩然后计算平均成绩并输出成绩报表。
综合成绩的计算方法在学生手册上可以查到。
1.查看学生手册了解综合成绩计算办法。
2.设计多维数组分别存储班上41个同学的智育、德育、体育、及相关的加减分。
3.计算出智育平均成绩,计算出综合测评成绩。
写出排序函数,分别按智育平均成绩、综合测评成绩排序。
4.C语言保存计算结果到excel表格(
注:
设计的时候需不断测试保证程序的正确性
工作计划及安排:
1.到底包括哪些成绩?
2.求智育的平均分及写函数。
3.求综合成绩及写函数。
4.排序。
5.把结果写到exce表里。
指导教师签字
年月日
课程设计(大作业)成绩
学号:
指导教师:
总结:
通过本次的作业,让我更加的进一步的学习到更多关于C语言的知识,也进一步的巩固了以前所学习的东西,也能够比以前更加熟练的应用C了。
也让我认识到合作精神的重要性,作为一个团队,只有大家一起相互合作相互交流才能将我们的任务做的更好。
一次课题设计不仅是对我们学习的知识的一种检测,也是体现我们对知识的综合能力的一种测试。
在课题设计中我们充分发挥自己的应用知识的能力,将自己负责的那一部分做好,与组员们相互讨论,合作做好每一个细节。
并且在这个互联网的时代,上网查找资料是并不可少的,因此在本次的课程设计中,有许多不懂的地方,我们只有通过上网查询一些资料,和老师的指导才能完成。
而且对于编程,必须要有一定的耐心和毅力才能够做的,因为一个小小的错误,整个程序就不能够应行,必须耐心的找出那个错误,并改正。
相信在本次的作业中每个同学都学习到了许多,不管是知识还是其他的,都会让我们每个人受益匪浅。
“只要功夫深,铁杵磨成针”所以不管多难的作业,在我们的努力下与合作下,我们可以完成,我们也可以做好。
指导教师评语:
成绩:
填表时间:
指导教师签名:
一、题目分析
二、总体设计
1.到底包括哪些成绩。
2.求智育平均分的函数。
3.求综合成绩平均分的函数。
4.排序。
5.把结果写到excel表里。
将此上述5步小组人员内部协商分工合作。
三、实验器材
计算机
四、制作步骤
1.到底包括哪些成绩?
5.把结果写到excel表了。
五、程序代码
1.
#include"stdafx.h"
#defineN41
floatzonghecj[41];
voidzhcj(float*zhiyupj,float*deyu,float*zhnl,float*tiyu,intn)
{
inti;
for(i=0;i{zonghecj[i]=zhiyupj[i]*0.55+deyu[i]*0.25+tiyu[i]*0.1+zhnl[i]*0.1;}}intmain(intargc,char*argv[]){inti;floatzhiyupj[41];floatzhiyu[41][4]={{85,65,80,76},{66,71,77,69},{65,71,75,72},{58,81,77,73},{65,74,75,80},{66,83,82,71},{68,65,62,71},{80,74,76,73},{82,80,70,76},{76,74,75,72},{65,65,71,80},{80,85,81,90},{90,82,84,86},{85,60,75,82},{85,68,75,72},{80,84,72,76},{65,85,69,72},{80,82,81,77},{90,82,77,76},{58,71,68,80},{60,71,68,77},{68,74,75,72},{94,82,71,76},{74,75,76,80},{66,85,77,78},{66,81,72,76},{68,72,75,78},{80,74,76,79},{81,79,81,76},{60,85,71,79},{78,80,75,60},{62,81,75,73},{82,72,76,52},{65,77,76,72},{81,75,77,76},{89,86,82,79},{80,71,76,79},{80,75,72,79},{82,71,76,79},{90,68,82,71},{82,80,75,76}};for(i=0;i<41;i++){zhiyupj[i]=(zhiyu[i][0]+zhiyu[i][1]+zhiyu[i][2]+zhiyu[i][3])/4;printf("智育平均成绩%f\n",zhiyupj[i]);}floatdeyu[41]={66,70,71,86,72,68,60,75,65,67,80,77,76,65,50,69,72,75,63,65,77,75,76,60,59,60,86,79,62,90,85,73,54,66,75,73,65,80,56,80,75};//德育总评分floattiyu[41]={82,65,74,68,76,80,66,85,72,77,80,72,85,68,63,72,65,76,88,67,82,71,65,56,77,82,82,53,94,78,72,81,61,72,84,79,68,72,84,68,76};//体育总评分floatzhnl[41]={71,82,62,75,86,74,88,69,73,83,75,66,77,82,65,59,72,65,81,74,66,78,76,92,75,66,80,85,70,63,71,84,86,83,90,92,66,75,91,84,75};//综合总评分zhcj(zhiyupj,deyu,zhnl,tiyu,41);for(i=0;i<41;i++){printf("综合成绩%f\n",zonghecj[i]);}return0;}2.#includeintpingjufen(floatcj[]){floatsum=0,s;inti;for(i=0;i<2;i++)sum+=cj[i];s=sum/3;printf("%f",s);getch();}voidmain(){floatcj[3]={78,88,68};pingjufen(cj);}3.//CC.cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include"string.h"floatjg[41];voidzhcj(int*deyu,int*zhiyu,int*tiyu,int*zhnl){inti;for(i=0;i<2;i++){jg[i]=deyu[i]*0.25+zhiyu[i]*0.55+tiyu[i]*0.10+zhnl[i]*0.10;printf("jg=%f\n",jg[i]);}}intmain(intargc,char*argv[]){intdeyu[41]={68,78};intzhiyu[41]={66,59};inttiyu[41]={88,90};intzhnl[41]={78,85};zhcj(deyu,zhiyu,tiyu,zhnl);return0;}4.#include"stdafx.h"voidswap(intcj[],intn){inti,j,*p=cj;intq;for(i=1;i<=n-2;i++)for(j=n-1;j>=i;j--){if(*(p+j)>*(p+j-1)){intt;t=*(p+j);*(p+j)=*(p+j-1);*(p+j-1)=t;}for(q=0;q<41;q++)printf("%d",*(p+q));printf("\n");}}intmain(void){inti;intcj[41]={71,82,62,75,86,74,88,69,73,83,75,66,77,82,65,59,72,65,81,74,66,78,76,92,75,66,80,85,70,63,71,84,86,83,90,92,66,75,91,84,75};swap(cj,41);return0;}5.#include"stdafx.h"#include"string.h"#include#include#include#ifdef_MSC_VER#pragmacomment(lib,"odbc32.lib")#defineSQLLENSQLINTEGER#endifenumerrtype{ERRORFREE,ERRACTION,XLSBUSY,TXTBUSY,TXTOPENERROR,SQLHANDLEENVERROR,SQLSETENVERROR,SQLHANDLEDBCERROR,SQLCONNECTERROR,SQLALLOCSTMTERROR,SQLCREATEERROR,SQLSELECTERROR,SQLBINDERROR};SQLHENVhenv;SQLHDBChdbc;SQLHSTMThstmt;//------------------------------------------------------------------------------------------------------------staticvoiddbError(LPSTRlp,SQLSMALLINThandleType,SQLHANDLEhandle){BYTEbuf[250],sqlstate[15];SQLGetDiagRec(handleType,handle,1,sqlstate,NULL,buf,sizeof(buf),NULL);fprintf(stderr,"%s:%sSQLSTATE=%s/n",lp,buf,sqlstate);}//------------------------------------------------------------------------------------------------------------staticvoiddbCleanup(){if(hstmt!=SQL_NULL_HANDLE){SQLFreeStmt(hstmt,SQL_UNBIND);SQLFreeHandle(SQL_HANDLE_STMT,hstmt);}if(hdbc!=SQL_NULL_HANDLE){SQLDisconnect(hdbc);SQLFreeHandle(SQL_HANDLE_DBC,hdbc);}if(henv!=SQL_NULL_HANDLE)SQLFreeHandle(SQL_HANDLE_ENV,henv);}//------------------------------------------------------------------------------------------------------------staticvoiddbErrorCleanup(LPSTRlp,SQLSMALLINThandleType,SQLHENVhenv,SQLHDBChdbc,SQLHSTMThstmt){SQLHANDLEhandle;switch(handleType){caseSQL_HANDLE_STMT:handle=hstmt;break;caseSQL_HANDLE_DBC:handle=hdbc;break;default:handle=henv;}if(handle!=SQL_NULL_HANDLE)dbError(lp,handleType,handle);//dbCleanup(henv,hdbc)dbCleanup();}//---------------------------------------------------------staticBOOLisFileOpen(constchar*fileName){HANDLEhFile;//以非共享方式打开文件.检查EXCEL文件当前是否在使用中...........hFile=CreateFile(fileName,GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL);if(hFile==INVALID_HANDLE_VALUE){if(GetLastError()==ERROR_SHARING_VIOLATION)returnTRUE;//使用中elsereturnFALSE;//未使用中,或者无此文件(现在可以创建)}else{CloseHandle(hFile);returnFALSE;}}intOpenExcel(char*szExcelName,char*szSheetName,char*szFieldName[],char*szFieldType[],intnColCount){SQLRETURNretcode;BYTEszSql[512],*pszSql=szSql;charszdatabase[256];//intrc,inti;henv=hdbc=hstmt=SQL_NULL_HANDLE;if(isFileOpen(szExcelName))returnXLSBUSY;//准备环境-------------------retcode=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);if(retcode!=SQL_SUCCESS){dbErrorCleanup("SQLAllocHandle(ENV)",SQL_HANDLE_ENV,henv,hdbc,hstmt);returnSQLHANDLEENVERROR;}retcode=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,0);if(retcode!=SQL_SUCCESS){dbErrorCleanup("SQLSetEnvAttr()",SQL_HANDLE_ENV,henv,hdbc,hstmt);returnSQLSETENVERROR;}retcode=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);if(retcode!=SQL_SUCCESS){dbErrorCleanup("SQLAllocHandle(DBC)",SQL_HANDLE_ENV,henv,hdbc,hstmt);returnSQLHANDLEDBCERROR;}//与数据库建立连接------------------sprintf(szdatabase,"DRIVER=MicrosoftExcelDriver(*.xls);CREATE_DB=%s;DBQ=%s;READONLY=FALSE;EXCLUSIVE=Yes;",szExcelName,szExcelName);//fprintf(stderr,"DATABASE:%s/n",szdatabase);retcode=SQLDriverConnect(hdbc,NULL,(SQLCHAR*)szdatabase,(short)(strlen(szdatabase)+1),NULL,0,NULL,SQL_DRIVER_NOPROMPT);if(retcode!=SQL_SUCCESS&&retcode!=SQL_SUCCESS_WITH_INFO){dbErrorCleanup("SQLDriverConnect()",SQL_HANDLE_DBC,henv,hdbc,hstmt);returnSQLCONNECTERROR;}retcode=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);if(retcode!=SQL_SUCCESS){dbErrorCleanup("SQLAllocHandle(STMT)",SQL_HANDLE_DBC,henv,hdbc,hstmt);returnSQLALLOCSTMTERROR;}//构造执行CREATETABLE语句----------------------pszSql=szSql+sprintf((char*)szSql,"CREATETABLE%s(",szSheetName);for(i=0;iif(i)*pszSql++=',';pszSql+=sprintf((char*)pszSql,"%s%s",szFieldName[i],szFieldType[i]);}*pszSql++=')';*pszSql='\0';//fprintf(stderr,"STATEMENT:[%s]/n",szSql);retcode=SQLExecDirect(hstmt,szSql,SQL_NTS);if(retcode!=SQL_SUCCESS){SQLCHARsqlState[15];SQLGetDiagField(SQL_HANDLE_STMT,hstmt,1,SQL_DIAG_SQLSTATE,sqlState,sizeof(sqlState),NULL);if(lstrcmpiA((char*)sqlState,"42S01")!=0){//Alreadyexisting...dbErrorCleanup("SQLExecDirect()",SQL_HANDLE_STMT,henv,hdbc,hstmt);returnSQLCREATEERROR;}}return0;}intAppendExcel(char*szSheetName,char*szFieldName[],intnColCount,char*szData){inti,rc;BYTEszSql[512],*psz;//构造INSERTINTO语句--------------------------------psz=szSql+sprintf((char*)szSql,"INSERTINTO%s(",szSheetName);for(i=0;iif(i)*psz++=',';psz+=sprintf((char*)psz,"%s",szFieldName[i]);}psz+=sprintf((char*)psz,")VALUES(%s)",szData);//fprintf(stderr,"STATEMENT:%s/n",szSql);rc=(int)SQLExecDirect(hstmt,szSql,SQL_NTS);if(rc!=SQL_SUCCESS){dbError("SQLExecDirect()",SQL_HANDLE_STMT,hstmt);}return0;}voidCloseExcel(){//fprintf(stderr,"CleanUp:henv=%08X;hdbc=%08X,hstmt=%08X./n",henv,hdbc,hstmt);dbCleanup();}//------------------Testdata---------------------------------------staticcharszExcelName[]="Test.xls";//Excel文件名staticcharszSheetNameA[]="成绩表";//工作表名staticchar*szFieldNameA[]={"成绩"};//字段名staticchar*szFieldTypeA[]={"NUMBER"};//字段类型staticcharszSheetNameB[]="日程";//工作表名staticchar*szFieldNameB[]={"日期","时间","安排"};//字段名staticchar*szFieldTypeB[]={"TEXT","TEXT","TEXT"};//字段类型charstr[20];voiditos(intn)
zonghecj[i]=zhiyupj[i]*0.55+deyu[i]*0.25+tiyu[i]*0.1+zhnl[i]*0.1;
}
intmain(intargc,char*argv[])
floatzhiyupj[41];
floatzhiyu[41][4]={{85,65,80,76},{66,71,77,69},{65,71,75,72},{58,81,77,73},{65,74,75,80},{66,83,82,71},{68,65,62,71},{80,74,76,73},{82,80,70,76},{76,74,75,72},{65,65,71,80},{80,85,81,90},{90,82,84,86},{85,60,75,82},{85,68,75,72},{80,84,72,76},{65,85,69,72},{80,82,81,77},{90,82,77,76},{58,71,68,80},{60,71,68,77},{68,74,75,72},{94,82,71,76},{74,75,76,80},{66,85,77,78},{66,81,72,76},{68,72,75,78},{80,74,76,79},{81,79,81,76},{60,85,71,79},{78,80,75,60},{62,81,75,73},{82,72,76,52},{65,77,76,72},{81,75,77,76},{89,86,82,79},{80,71,76,79},{80,75,72,79},{82,71,76,79},{90,68,82,71},{82,80,75,76}};
for(i=0;i<41;i++)
zhiyupj[i]=(zhiyu[i][0]+zhiyu[i][1]+zhiyu[i][2]+zhiyu[i][3])/4;
printf("智育平均成绩%f\n",zhiyupj[i]);
floatdeyu[41]={66,70,71,86,72,68,60,75,65,67,80,77,76,65,50,69,72,75,63,65,77,75,76,60,59,60,86,79,62,90,85,73,54,66,75,73,65,80,56,80,75};//德育总评分
floattiyu[41]={82,65,74,68,76,80,66,85,72,77,80,72,85,68,63,72,65,76,88,67,82,71,65,56,77,82,82,53,94,78,72,81,61,72,84,79,68,72,84,68,76};//体育总评分
floatzhnl[41]={71,82,62,75,86,74,88,69,73,83,75,66,77,82,65,59,72,65,81,74,66,78,76,92,75,66,80,85,70,63,71,84,86,83,90,92,66,75,91,84,75};//综合总评分
zhcj(zhiyupj,deyu,zhnl,tiyu,41);
printf("综合成绩%f\n",zonghecj[i]);
return0;
2.
#include
intpingjufen(floatcj[])
floatsum=0,s;
for(i=0;i<2;i++)
sum+=cj[i];
s=sum/3;
printf("%f",s);
getch();
voidmain()
floatcj[3]={78,88,68};
pingjufen(cj);
3.
//CC.cpp:
Definestheentrypointfortheconsoleapplication.
//
#include"string.h"
floatjg[41];
voidzhcj(int*deyu,int*zhiyu,int*tiyu,int*zhnl)
for(i=0;i<2;i++){
jg[i]=deyu[i]*0.25+zhiyu[i]*0.55+tiyu[i]*0.10+zhnl[i]*0.10;
printf("jg=%f\n",jg[i]);
intdeyu[41]={68,78};
intzhiyu[41]={66,59};
inttiyu[41]={88,90};
intzhnl[41]={78,85};
zhcj(deyu,zhiyu,tiyu,zhnl);
4.
voidswap(intcj[],intn)
inti,j,*p=cj;
intq;
for(i=1;i<=n-2;i++)
for(j=n-1;j>=i;j--)
if(*(p+j)>*(p+j-1))
intt;
t=*(p+j);
*(p+j)=*(p+j-1);
*(p+j-1)=t;
for(q=0;q<41;q++)printf("%d",*(p+q));
printf("\n");
intmain(void)
intcj[41]={71,82,62,75,86,74,88,69,73,83,75,66,77,82,65,59,72,65,81,74,66,78,76,92,75,66,80,85,70,63,71,84,86,83,90,92,66,75,91,84,75};
swap(cj,41);
5.
#ifdef_MSC_VER
#pragmacomment(lib,"odbc32.lib")
#defineSQLLENSQLINTEGER
#endif
enumerrtype{ERRORFREE,ERRACTION,XLSBUSY,TXTBUSY,TXTOPENERROR,
SQLHANDLEENVERROR,SQLSETENVERROR,SQLHANDLEDBCERROR,
SQLCONNECTERROR,SQLALLOCSTMTERROR,SQLCREATEERROR,
SQLSELECTERROR,SQLBINDERROR};
SQLHENVhenv;
SQLHDBChdbc;
SQLHSTMThstmt;
//------------------------------------------------------------------------------------------------------------
staticvoiddbError(LPSTRlp,SQLSMALLINThandleType,SQLHANDLEhandle)
BYTEbuf[250],sqlstate[15];
SQLGetDiagRec(handleType,handle,1,sqlstate,NULL,buf,sizeof(buf),NULL);
fprintf(stderr,"%s:
%sSQLSTATE=%s/n",lp,buf,sqlstate);
staticvoiddbCleanup()
if(hstmt!
=SQL_NULL_HANDLE){
SQLFreeStmt(hstmt,SQL_UNBIND);
SQLFreeHandle(SQL_HANDLE_STMT,hstmt);
if(hdbc!
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC,hdbc);
if(henv!
=SQL_NULL_HANDLE)SQLFreeHandle(SQL_HANDLE_ENV,henv);
staticvoiddbErrorCleanup(LPSTRlp,SQLSMALLINThandleType,SQLHENVhenv,SQLHDBChdbc,SQLHSTMThstmt)
SQLHANDLEhandle;
switch(handleType){
caseSQL_HANDLE_STMT:
handle=hstmt;
break;
caseSQL_HANDLE_DBC:
handle=hdbc;
default:
handle=henv;
if(handle!
=SQL_NULL_HANDLE)dbError(lp,handleType,handle);
//dbCleanup(henv,hdbc)
dbCleanup();
//---------------------------------------------------------
staticBOOLisFileOpen(constchar*fileName)
HANDLEhFile;
//以非共享方式打开文件.检查EXCEL文件当前是否在使用中...........
hFile=CreateFile(fileName,GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL);
if(hFile==INVALID_HANDLE_VALUE){
if(GetLastError()==ERROR_SHARING_VIOLATION)returnTRUE;//使用中
elsereturnFALSE;//未使用中,或者无此文件(现在可以创建)
}else{
CloseHandle(hFile);
returnFALSE;
intOpenExcel(char*szExcelName,char*szSheetName,char*szFieldName[],char*szFieldType[],intnColCount)
SQLRETURNretcode;
BYTEszSql[512],*pszSql=szSql;
charszdatabase[256];
//intrc,
henv=hdbc=hstmt=SQL_NULL_HANDLE;
if(isFileOpen(szExcelName))returnXLSBUSY;
//准备环境-------------------
retcode=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);
if(retcode!
=SQL_SUCCESS){
dbErrorCleanup("SQLAllocHandle(ENV)",SQL_HANDLE_ENV,henv,hdbc,hstmt);
returnSQLHANDLEENVERROR;
retcode=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,0);
dbErrorCleanup("SQLSetEnvAttr()",SQL_HANDLE_ENV,henv,hdbc,hstmt);
returnSQLSETENVERROR;
retcode=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
dbErrorCleanup("SQLAllocHandle(DBC)",SQL_HANDLE_ENV,henv,hdbc,hstmt);
returnSQLHANDLEDBCERROR;
//与数据库建立连接------------------
sprintf(szdatabase,"DRIVER=MicrosoftExcelDriver(*.xls);CREATE_DB=%s;DBQ=%s;READONLY=FALSE;EXCLUSIVE=Yes;",
szExcelName,szExcelName);
//fprintf(stderr,"DATABASE:
%s/n",szdatabase);
retcode=SQLDriverConnect(hdbc,NULL,(SQLCHAR*)szdatabase,(short)(strlen(szdatabase)+1),NULL,0,NULL,SQL_DRIVER_NOPROMPT);
=SQL_SUCCESS&&retcode!
=SQL_SUCCESS_WITH_INFO){
dbErrorCleanup("SQLDriverConnect()",SQL_HANDLE_DBC,henv,hdbc,hstmt);
returnSQLCONNECTERROR;
retcode=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);
dbErrorCleanup("SQLAllocHandle(STMT)",SQL_HANDLE_DBC,henv,hdbc,hstmt);
returnSQLALLOCSTMTERROR;
//构造执行CREATETABLE语句----------------------
pszSql=szSql+sprintf((char*)szSql,"CREATETABLE%s(",szSheetName);
for(i=0;iif(i)*pszSql++=',';pszSql+=sprintf((char*)pszSql,"%s%s",szFieldName[i],szFieldType[i]);}*pszSql++=')';*pszSql='\0';//fprintf(stderr,"STATEMENT:[%s]/n",szSql);retcode=SQLExecDirect(hstmt,szSql,SQL_NTS);if(retcode!=SQL_SUCCESS){SQLCHARsqlState[15];SQLGetDiagField(SQL_HANDLE_STMT,hstmt,1,SQL_DIAG_SQLSTATE,sqlState,sizeof(sqlState),NULL);if(lstrcmpiA((char*)sqlState,"42S01")!=0){//Alreadyexisting...dbErrorCleanup("SQLExecDirect()",SQL_HANDLE_STMT,henv,hdbc,hstmt);returnSQLCREATEERROR;}}return0;}intAppendExcel(char*szSheetName,char*szFieldName[],intnColCount,char*szData){inti,rc;BYTEszSql[512],*psz;//构造INSERTINTO语句--------------------------------psz=szSql+sprintf((char*)szSql,"INSERTINTO%s(",szSheetName);for(i=0;iif(i)*psz++=',';psz+=sprintf((char*)psz,"%s",szFieldName[i]);}psz+=sprintf((char*)psz,")VALUES(%s)",szData);//fprintf(stderr,"STATEMENT:%s/n",szSql);rc=(int)SQLExecDirect(hstmt,szSql,SQL_NTS);if(rc!=SQL_SUCCESS){dbError("SQLExecDirect()",SQL_HANDLE_STMT,hstmt);}return0;}voidCloseExcel(){//fprintf(stderr,"CleanUp:henv=%08X;hdbc=%08X,hstmt=%08X./n",henv,hdbc,hstmt);dbCleanup();}//------------------Testdata---------------------------------------staticcharszExcelName[]="Test.xls";//Excel文件名staticcharszSheetNameA[]="成绩表";//工作表名staticchar*szFieldNameA[]={"成绩"};//字段名staticchar*szFieldTypeA[]={"NUMBER"};//字段类型staticcharszSheetNameB[]="日程";//工作表名staticchar*szFieldNameB[]={"日期","时间","安排"};//字段名staticchar*szFieldTypeB[]={"TEXT","TEXT","TEXT"};//字段类型charstr[20];voiditos(intn)
if(i)*pszSql++=',';
pszSql+=sprintf((char*)pszSql,"%s%s",szFieldName[i],szFieldType[i]);
*pszSql++=')';
*pszSql='\0';
//fprintf(stderr,"STATEMENT:
[%s]/n",szSql);
retcode=SQLExecDirect(hstmt,szSql,SQL_NTS);
SQLCHARsqlState[15];
SQLGetDiagField(SQL_HANDLE_STMT,hstmt,1,SQL_DIAG_SQLSTATE,sqlState,sizeof(sqlState),NULL);
if(lstrcmpiA((char*)sqlState,"42S01")!
=0){//Alreadyexisting...
dbErrorCleanup("SQLExecDirect()",SQL_HANDLE_STMT,henv,hdbc,hstmt);
returnSQLCREATEERROR;
intAppendExcel(char*szSheetName,char*szFieldName[],intnColCount,char*szData)
inti,rc;
BYTEszSql[512],*psz;
//构造INSERTINTO语句--------------------------------
psz=szSql+sprintf((char*)szSql,"INSERTINTO%s(",szSheetName);
for(i=0;iif(i)*psz++=',';psz+=sprintf((char*)psz,"%s",szFieldName[i]);}psz+=sprintf((char*)psz,")VALUES(%s)",szData);//fprintf(stderr,"STATEMENT:%s/n",szSql);rc=(int)SQLExecDirect(hstmt,szSql,SQL_NTS);if(rc!=SQL_SUCCESS){dbError("SQLExecDirect()",SQL_HANDLE_STMT,hstmt);}return0;}voidCloseExcel(){//fprintf(stderr,"CleanUp:henv=%08X;hdbc=%08X,hstmt=%08X./n",henv,hdbc,hstmt);dbCleanup();}//------------------Testdata---------------------------------------staticcharszExcelName[]="Test.xls";//Excel文件名staticcharszSheetNameA[]="成绩表";//工作表名staticchar*szFieldNameA[]={"成绩"};//字段名staticchar*szFieldTypeA[]={"NUMBER"};//字段类型staticcharszSheetNameB[]="日程";//工作表名staticchar*szFieldNameB[]={"日期","时间","安排"};//字段名staticchar*szFieldTypeB[]={"TEXT","TEXT","TEXT"};//字段类型charstr[20];voiditos(intn)
if(i)*psz++=',';
psz+=sprintf((char*)psz,"%s",szFieldName[i]);
psz+=sprintf((char*)psz,")VALUES(%s)",szData);
%s/n",szSql);
rc=(int)SQLExecDirect(hstmt,szSql,SQL_NTS);
if(rc!
dbError("SQLExecDirect()",SQL_HANDLE_STMT,hstmt);
voidCloseExcel()
//fprintf(stderr,"CleanUp:
henv=%08X;hdbc=%08X,hstmt=%08X./n",henv,hdbc,hstmt);
//------------------Testdata---------------------------------------
staticcharszExcelName[]="Test.xls";//Excel文件名
staticcharszSheetNameA[]="成绩表";//工作表名
staticchar*szFieldNameA[]={"成绩"};//字段名
staticchar*szFieldTypeA[]={"NUMBER"};//字段类型
staticcharszSheetNameB[]="日程";//工作表名
staticchar*szFieldNameB[]={"日期","时间","安排"};//字段名
staticchar*szFieldTypeB[]={"TEXT","TEXT","TEXT"};//字段类型
charstr[20];
voiditos(intn)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1