导航:首页 > 编程语言 > excelc编程实例

excelc编程实例

发布时间:2022-05-11 00:00:31

① C# 对Excel进行编程

首先,添加 Excel.dll导入: public void ReadExcelToTable(string filepath)
{
string excelfilePath = filepath;
Excel.Application myExcel = new Excel.ApplicationClass();
Excel.Workbooks myBooks = myExcel.Application.Workbooks;
object oMissing = System.Reflection.Missing.Value;
Excel.Workbook myBook = myBooks.Open(excelfilePath, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing); //Excel.Workbook myBook = myExcel.Workbooks[1];
int sheetint = myBook.Worksheets.Count;//能得到sheet的数量
DataSet myDs = new DataSet();
for (int k = 1; k <= 1; k++)
{
Excel.Worksheet mySheet = (Excel.Worksheet)myBook.Worksheets[k];
int rowsint = mySheet.UsedRange.Cells.Rows.Count; //得到行数
int columnsint = mySheet.UsedRange.Cells.Columns.Count;//得到列数
System.Data.DataTable dt = new System.Data.DataTable("mytable" + k);
for (int i = 2; i <= rowsint; i++) //第一行为标题,不读取
{
Excel.Range skoitem = (Excel.Range)mySheet.Cells[i, 1];
}
}
} 导出: public bool SaveDataGireViewtoExcel(DataGridView dgv)
{
try
{
//实例化一个Excel.Application对象
Excel.Application excel =
new Excel.Application(); //让后台执行设置为不可见,为true的话会看到打开一个Excel,然后数据在往里写
excel.Visible = false; //新增加一个工作簿,Workbook是直接保存,不会弹出保存对话框,加上Application会弹出保存对话框,值为false会报错
excel.Application.Workbooks.Add(true);
//生成Excel中列头名称
for (int i = 0; i < dgv.Columns.Count; i++)
{
excel.Cells[1, i + 1] = dgv.Columns[i].HeaderText;
}
//把DataGridView当前页的数据保存在Excel中
for (int i = 0; i < dgv.Rows.Count - 1; i++)
{
for (int j = 0; j < dgv.Columns.Count; j++)
{
if (dgv[j, i].ValueType == typeof(string))
{
excel.Cells[i + 2, j + 1] = "'" + dgv[j, i].Value.ToString();
}
else
{
excel.Cells[i + 2, j + 1] = dgv[j, i].Value.ToString();
}
}
} //设置禁止弹出保存和覆盖的询问提示框
excel.DisplayAlerts = false;
excel.AlertBeforeOverwriting = false; //保存工作簿
excel.Application.Workbooks.Add(true).Save();
//保存excel文件
excel.Save("D:" + "\\HBMange.xls");
//确保Excel进程关闭
excel.Quit();
excel = null;
GC.Collect(); return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误提示");
} return false;
}

② 怎么利用c语言创建excel文件

如果数据简单的话,可以使用CSV(逗号分隔值)格式的文件。CSV格式的文件可以用Office
Excel
打开。比如有要保存的一张表格是这样的:
----------------表格开始-------------------
编号
姓名
性别
1
A

2
B

3
C

---------------表格结束--------------------
那么在保存CSV文件里面数据格式是这样的:
----------------内容开始----------------
编号,姓名,性别
1,
A,

2,
B,

3,
C,

----------------内容结束----------------
用Excel打开是这样的:
下面是示例程序:
#include
struct
Student
{
int
id;
char
name[10];
char
gender[3];
};
int
main(int
argc,
char
*argv[])
{
//
在程序所在目录下面,可以看见一个名为
student.csv
的文件
FILE
*
file=fopen("student.csv","w...
}
}
fclose(file);;),%s\
struct
Student
studens[]=
{
{1,studens[i],",

2.h>
};:
----------------内容开始----------------
编号,
A;%s%,%s,
B;),"
int
main(int
argc,"};
int
studensAmount=sizeof(studens)/,",%s\;
return
0;%d%,studens[i];n",studens[i];男"
在程序所在目录下面;B"男"i<,".csv
的文件
FILE
*
file=fopen(",性别
1,
C;,

----------------内容结束----------------
用Excel打开是这样的;student;性别"姓名"w"studensAmount,姓名;,"
struct
Student
{
int
id;},

3;/stdio,"女"
char
name[10],".gender);
for(i=0;C".id,可以使用CSV(逗号分隔值)格式的文件;
int
i;sizeof(struct
Student),
char
*argv[])
{
/,可以看见一个名为
student,
};编号":
#include
<;n",
{2。比如有要保存的一张表格是这样的,".name:
下面是示例程序。CSV格式的文件可以用Office
Excel
打开;A"},
{3,":
----------------表格开始-------------------
编号
姓名
性别
1
A

2
B

3
C

---------------表格结束--------------------
那么在保存CSV文件里面数据格式是这样的;,",%s;
char
gender[3].csv"i++)
{
fprintf(file,"
if(file)
{
fprintf(file如果数据简单的话

③ 在EXCEL中如何编写程序

1、打开excel软件,点击左上角“文件”;

④ C语言函数和EXCEL函数

首先声明,C语言和Excel完全不是一回事情:C语言是编程(尤其针对硬件有效的),Excel是办公中的应用软件(支持VBS或者宏编程)。你所看到的只是重名现象而已。不可当真,不过你不怕混淆可以方便你同时学习的时候记忆。printf:打印输出到屏幕。scanf:从键盘输入。getchar:获得一个字符。

⑤ 怎样用C语言编程实现循环把数据读入到一个excel文件指定列中或者一个excel文件中的数据读入到

最佳答案可以先用C语言格式化输出为EXCEL可以导入的文本文件,再使用EXCEL手工导入。具体导入方法可参阅《往Excel中导入TXT文本数据的三种方法》: http://tech.sina.com.cn/s/2006-05-12/1042934532.shtml 这种方法最简单, 但自动化程度低, 不能集成到你的C程序中去. 如果用C/C++创建EXCEL, 可以使用ADO或者ODBC. 如果用C++/ODBC, 可参阅《直接通过ODBC读写Excel表格文件》: http://www.vckbase.com/document/viewdoc/?id=421 还有《针对Excel表格文件操作的编程实现》: http://www.vckbase.com/document/viewdoc/?id=693 如果你的程序是用C++写的, 推荐使用以上方法. 如果用C/ODBC, 稍微麻烦一点。我以前写过一个,好像是根据一个C++的类改写成C的, 时间太长, 记不得出处了. 现在给你做参考: 三个接口函数: OpenExcel(): 创建或打开Excel文件的一个工作表 AppendExcel(): 向工作表中加入数据记录 CloseExcel(): 结束处理 main()中示例的是建立test.xls文件, 其中两个工作表. 我这里源程序用VC6.0编译, 得到的结果在Excel 2003中可以使用. #include <windows.h> #include <sqlext.h> #include <stdio.h> #ifdef _MSC_VER #pragma comment(lib,"odbc32.lib") #define SQLLEN SQLINTEGER #endif enum errtype { ERRORFREE, ERRACTION, XLSBUSY, TXTBUSY, TXTOPENERROR, SQLHANDLEENVERROR, SQLSETENVERROR, SQLHANDLEDBCERROR, SQLCONNECTERROR, SQLALLOCSTMTERROR, SQLCREATEERROR, SQLSELECTERROR, SQLBINDERROR } ; SQLHENV henv; SQLHDBC hdbc; SQLHSTMT hstmt; // ------------------------------------------------------------------------------------------------------------ static void dbError( LPSTR lp, SQLSMALLINT handleType, SQLHANDLE handle) { BYTE buf[250], sqlstate[15]; SQLGetDiagRec( handleType,handle, 1, sqlstate, NULL,buf, sizeof(buf),NULL); fprintf(stderr, "%s: %s SQLSTATE=%s\n",lp, buf, sqlstate); } // ------------------------------------------------------------------------------------------------------------ static void dbCleanup() { 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); } // ------------------------------------------------------------------------------------------------------------ static void dbErrorCleanup( LPSTR lp,SQLSMALLINT handleType, SQLHENV henv,SQLHDBC hdbc,SQLHSTMT hstmt) { SQLHANDLE handle; switch (handleType) { case SQL_HANDLE_STMT: handle = hstmt; break; case SQL_HANDLE_DBC: handle = hdbc; break; default: handle = henv; } if (handle != SQL_NULL_HANDLE) dbError( lp, handleType, handle ); dbCleanup(henv, hdbc, hstmt ); } //--------------------------------------------------------- static BOOL isFileOpen(const BYTE *fileName) { HANDLE hFile; // 以非共享方式打开文件. 检查EXCEL文件当前是否在使用中........... hFile = CreateFile(fileName,GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL); if (hFile == INVALID_HANDLE_VALUE) { if (GetLastError() == ERROR_SHARING_VIOLATION) return TRUE; // 使用中 else return FALSE; // 未使用中,或者无此文件(现在可以创建) } else { CloseHandle(hFile); return FALSE; } } int OpenExcel(BYTE *szExcelName, BYTE *szSheetName, BYTE *szFieldName[], BYTE *szFieldType[], int nColCount) { SQLRETURN retcode; BYTE szSql[512], *pszSql=szSql; BYTE szdatabase[256]; int rc, i; henv = hdbc = hstmt = SQL_NULL_HANDLE; if ( isFileOpen(szExcelName) ) return XLSBUSY; // 准备环境 ------------------- retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); if (retcode != SQL_SUCCESS) { dbErrorCleanup( "SQLAllocHandle(ENV)",SQL_HANDLE_ENV,henv,hdbc,hstmt); return SQLHANDLEENVERROR; } retcode = SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3,0); if (retcode != SQL_SUCCESS) { dbErrorCleanup( "SQLSetEnvAttr()",SQL_HANDLE_ENV,henv,hdbc,hstmt); return SQLSETENVERROR; } retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); if (retcode != SQL_SUCCESS) { dbErrorCleanup( "SQLAllocHandle(DBC)",SQL_HANDLE_ENV,henv,hdbc,hstmt); return SQLHANDLEDBCERROR; } // 与数据库建立连接 ------------------ sprintf(szdatabase,"DRIVER=Microsoft Excel Driver (*.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); return SQLCONNECTERROR; } retcode = SQLAllocHandle(SQL_HANDLE_STMT,hdbc, &hstmt); if (retcode != SQL_SUCCESS) { dbErrorCleanup( "SQLAllocHandle(STMT)",SQL_HANDLE_DBC,henv,hdbc,hstmt); return SQLALLOCSTMTERROR; } // 构造执行 CREATE TABLE 语句 ---------------------- pszSql = szSql + sprintf(szSql, "CREATE TABLE %s (", szSheetName); for (i=0; i<nColCount; ++i) { if (i) *pszSql++ = ','; pszSql += sprintf(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) { SQLCHAR sqlState[15]; SQLGetDiagField( SQL_HANDLE_STMT, hstmt,1,SQL_DIAG_SQLSTATE,sqlState,sizeof(sqlState),NULL); if ( lstrcmpiA(sqlState,"42S01") != 0 ) { // Already existing... dbErrorCleanup( " SQLExecDirect()",SQL_HANDLE_STMT,henv,hdbc,hstmt); return SQLCREATEERROR; } } return 0; } int AppendExcel(BYTE *szSheetName, BYTE *szFieldName[], int nColCount, BYTE *szData) { int i, rc; BYTE szSql[512], *s, *p, *d, *psz; //构造 INSERT INTO 语句 -------------------------------- psz = szSql + sprintf(szSql, "INSERT INTO %s (", szSheetName); for (i=0; i<nColCount; ++i) { if (i) *psz++ = ','; psz += sprintf(psz, "%s", szFieldName[i]); } psz += sprintf(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); } return rc; } void CloseExcel() { //fprintf(stderr, "CleanUp: henv=%08X; hdbc=%08X, hstmt=%08X.\n", henv, hdbc, hstmt); dbCleanup(); } //------------------ Test data --------------------------------------- static BYTE szExcelName[] = "Test.xls"; // Excel 文件名 static BYTE szSheetNameA[] = "名单"; // 工作表名 static BYTE *szFieldNameA[] = { "姓名", "年龄" }; // 字段名 static BYTE *szFieldTypeA[] = { "TEXT", "NUMBER" }; // 字段类型 static BYTE szSheetNameB[] = "日程"; // 工作表名 static BYTE *szFieldNameB[] = { "日期", "时间", "安排" }; // 字段名 static BYTE *szFieldTypeB[] = { "TEXT", "TEXT", "TEXT" }; // 字段类型 int main() { if (OpenExcel(szExcelName, szSheetNameA, szFieldNameA, szFieldTypeA, 2)==0) { AppendExcel(szSheetNameA, szFieldNameA, 2, "'张三',33"); AppendExcel(szSheetNameA, szFieldNameA, 2, "'李四',44"); printf("Excel文件[%s]中的工作表[%s] 操作成功.\n", szExcelName, szSheetNameA); CloseExcel(); } if (OpenExcel(szExcelName, szSheetNameB, szFieldNameB, szFieldTypeB, 3)==0) { AppendExcel(szSheetNameB, szFieldNameB, 3, "'五月三日','18:00','饭局'"); printf("Excel文件[%s]中的工作表[%s] 操作成功.\n", szExcelName, szSheetNameB); CloseExcel(); } printf(" ----- 完了."); return 0; } --------------------------------------- 有关函数的调用参数: int OpenExcel( //成功:返回0 BYTE *szExcelName, //Excel文件名 BYTE *szSheetName, //工作表名 BYTE *szFieldName[], //字段名(数组) BYTE *szFieldType[], //字段类型(数组) int nColCount) //字段数 int AppendExcel( //成功:返回0 BYTE *szSheetName, //工作表名 BYTE *szFieldName[], //字段名(数组) int nColCount, //字段数 BYTE *szData) //数据字串 如使用图形界面,可把#include <stdio.h> 去掉, printf/fprintf 改为用 MessageBox 提供必要的输出信息或干脆删掉。

⑥ vc 如何操作 excel2003(注意一定是2003) 编程

1.制作应用软件的时候,经常要把结果以报表的形式输出,当前使用较为广泛的当然是Excel表格,本文简略介绍在VC++6.0中如何使用Excel2003的库函数并对其进行编程。先创建一个对话框工程,命名为VCExcel。在对话框中添加一个按钮,控件ID为2.ID_RUNEXCEL(是不是很搞笑哇,不过没关系,它照样能实现强大的功能)。
再在该按钮上添加消息BN_CLICKED,其消息映射函数为OnRunexcel(),下面工作就是要完成这个OnRunexcel()函数。在这里我们通过一个实例来说明VC是如何调用Excel2003的接口编程的。
3.要编程输出一个如下表格。
格式如下:
1)表头的字体为宋体,加粗,颜色为白色,底色为深蓝,垂直水平居中对齐;
2)表中正文内容字体为宋体,颜色为深蓝,底色为灰色,垂直水平居中对齐;
3)全部边框,文本自动换行。
在BOOL CVCExcelApp::InitInstance()之中,int nResponse = dlg.DoModal()语句之后加入如下代码:
if(CoInitialize(NULL)==0)//初始化COM库
{
AfxMessageBox("初始化COM失败!");
exit(1);
}
在return FALSE;语句之前加入:::CoUninitialize();//释放COM库。
4.为了能调用Excel的接口我们打开MFC ClassWizard->Automation->Add Class->From a type library,选择[Excel的安装路径]/EXCEL.exe,然后把所有的类都添加进去,头文件为excel.h,源文件为excel.cpp。当然,你也可以只把一些比较常用的类如_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range加进去,因为网上流传的绝大部分教程都只添加这几个类,这完全根据个人的需要。至少还要用到Interior类(设置底色),Font类(设置字体),而且这样做又简单又方便扩展功能,不管三七二十一全部弄进去吧!但这样做会有一个问题,有可能产生类的名字冲突,例如本来你自己写了一个类叫Font,当你全部添加时又再次加入了Font类,这样就重复定义了,不过可以通过名字空间来解决这个问题。再在VCExcelDlg.cpp文件的头部添加(如果系统已经自动添加就不要重复添加了):
#include "VCExcel.h"
#include "comdef.h"
这样一来程序就可以自由调用EXCEL了,一切准备就绪。
5.下面先在CVCExcelDlg中添加如下成员变量,用来操控Excel应用程序、工作簿和单元格。
Range m_ExlRge;
_Worksheet m_ExlSheet;
Worksheets m_ExlSheets;
_Workbook m_ExlBook;
Workbooks m_ExlBooks;
_Application m_ExlApp;
我们利用加载Excel模板来生成要求的表格,在本工程Debug文件夹中建立一个Excel文件,命名为Template.xls。我们的OnRunexcel()代码如下(详见注释):
void CVCExcelDlg::OnRunexcel()
{
// TODO: Add your control notification handler code here

//用m_ExlApp对象创建Excel2003进程

if(!m_ExlApp.CreateDispatch("Excel.Application",NULL))
{
AfxMessageBox("创建Excel服务失败!");
return;
}

//设置为可见
m_ExlApp.SetVisible(TRUE);
///////////////////下面得到应用程序所在的路径///////////////////
CString theAppPath,theAppName;
char Path[MAX_PATH];
GetMoleFileName(NULL,Path,MAX_PATH);//得到应用程序的全路径
theAppPath=(CString)Path;
theAppName=AfxGetApp()->m_pszAppName;
theAppName+=".exe";
//把最后的文件名去掉
int length1,length2;
length1=theAppPath.GetLength();
length2=theAppName.GetLength();
theAppPath.Delete(length1-length2,length2);
////////////////////////////////////////////////////////////////
CString TempPath="";
TempPath=theAppPath+"Template.xls";//EXCEL模板的路径
m_ExlBooks.AttachDispatch(m_ExlApp.GetWorkbooks(),TRUE);
m_ExlBook.AttachDispatch(m_ExlBooks.Add((_variant_t)TempPath),TRUE);//加载EXCEL模板
m_ExlSheets.AttachDispatch(m_ExlBook.GetSheets(),TRUE);//加载Sheet页面
//添加新的Sheet页面
m_ExlSheets.Add(vtMissing,vtMissing,_variant_t((long)1),vtMissing);
//删除第二个Sheet页面
m_ExlSheet.AttachDispatch(m_ExlSheets.GetItem(_variant_t((long)2)),TRUE);
m_ExlSheet.Delete();
//把第一个Sheet页面的名字改变为TestSheet
m_ExlSheet.AttachDispatch(m_ExlSheets.GetItem(_variant_t((long)1)),TRUE);
m_ExlSheet.SetName("TestSheet");
///////合并第一行单元格A1至D1//////
//加载要合并的单元格 m_ExlRge.AttachDispatch(m_ExlSheet.GetRange(_variant_t("A1"),_variant_t("D1")),TRUE);
m_ExlRge.Merge(_variant_t((long)0));
////////设置表格内容////////
m_ExlRge.AttachDispatch(m_ExlSheet.GetCells(),TRUE);//加载所有单元格
m_ExlRge.SetItem(_variant_t((long)1),_variant_t((long)1),_variant_t("数学系研究生课程统计"));

m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)1),_variant_t("课程名"));
m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)2),_variant_t("课时"));
m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)3),_variant_t("难度"));
m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)4),_variant_t("教学方式"));
m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)1),_variant_t("泛函分析"));
m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)2),_variant_t("60"));
m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)3),_variant_t("普通"));
m_ExlRge.SetItem(_variant_t((long)3),_variant_t((long)4),_variant_t("老师讲课"));

m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)1),_variant_t("微分流形"));
m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)2),_variant_t("40"));
m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)3),_variant_t("变态难"));
m_ExlRge.SetItem(_variant_t((long)4),_variant_t((long)4),_variant_t("自学"));
m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)1),_variant_t("二阶椭圆型方程与方程组"));
m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)2),_variant_t("60"));
m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)3),_variant_t("很难"));
m_ExlRge.SetItem(_variant_t((long)5),_variant_t((long)4),_variant_t("讨论"));
m_ExlRge.AttachDispatch(m_ExlSheet.GetUsedRange());//加载已使用的单元格
m_ExlRge.SetWrapText(_variant_t((long)1));//设置单元格内的文本为自动换行
//设置齐方式为水平垂直居中
//水平对齐:默认=1,居中=-4108,左=-4131,右=-4152
//垂直对齐:默认=2,居中=-4108,左=-4160,右=-4107
m_ExlRge.SetHorizontalAlignment(_variant_t((long)-4108));
m_ExlRge.SetVerticalAlignment(_variant_t((long)-4108));
///////设置整体的字体、字号及颜色//////
Font ft;
ft.AttachDispatch(m_ExlRge.GetFont());
ft.SetName(_variant_t("宋体"));//字体
ft.SetColorIndex(_variant_t((long)11));//字的颜色
ft.SetSize(_variant_t((long)12));//字号
///////////设置标题字体及颜色////////// m_ExlRge.AttachDispatch(m_ExlSheet.GetRange(_variant_t("A1"),_variant_t("D1")));
ft.AttachDispatch(m_ExlRge.GetFont());
ft.SetBold(_variant_t((long)1));//粗体
ft.SetSize(_variant_t((long)13));
ft.SetColorIndex(_variant_t((long)2));
CellFormat cf;
cf.AttachDispatch(m_ExlRge.GetCells());
//////////////设置底色/////////////////
Interior it;
it.AttachDispatch(m_ExlRge.GetInterior());
it.SetColorIndex(_variant_t((long)11));//标题底色
////表格内容的底色//// m_ExlRge.AttachDispatch(m_ExlSheet.GetRange(_variant_t("A2"),_variant_t("D5")));
it.AttachDispatch(m_ExlRge.GetInterior());
it.SetColorIndex(_variant_t((long)15));
//////////////为表格设置边框/////////////
Range UnitRge;
CString CellName;
for(int i=1;i<=4;i++)
{
for(int j=1;j<=4;j++)
{
CellName.Format("%c%d",j+64,i);//单元格的名称 UnitRge.AttachDispatch(m_ExlRge.GetRange(_variant_t(CellName),_variant_t(CellName)));//加载单元格
//LineStyle=线型 Weight=线宽 ColorIndex=线的颜色(-4105为自动) UnitRge.BorderAround(_variant_t((long)1),_variant_t((long)2),_variant_t((long)-4105),vtMissing);//设置边框
}
}

//释放对象(相当重要!)
m_ExlRge.ReleaseDispatch();
m_ExlSheet.ReleaseDispatch();
m_ExlSheets.ReleaseDispatch();
m_ExlBook.ReleaseDispatch();
m_ExlBooks.ReleaseDispatch();
//m_ExlApp一定要释放,否则程序结束后还会有一个Excel进程驻留在内存中,而且程序重复运行的时候会出错
m_ExlApp.ReleaseDispatch();
//退出程序 m_ExlApp.Quit();
}

⑦ c语言 excel 编程

excel 和access数据库操作一样 可以用ado的方式访问数据库 可执行增删改查询的所有操作

⑧ C语言怎么操纵Excel表格

简单的方法是通过ODBC来实现:
具体实现
一、 包含Excel文件操作类头文件
#include "CSpreadSheet.h"
二、 新建Excel文件,并写入默认数据
// 新建Excel文件名及路径,TestSheet为内部表名
CSpreadSheet SS("c:\\Test.xls", "TestSheet");

CStringArray sampleArray, testRow;

SS.BeginTransaction();

// 加入标题
sampleArray.RemoveAll();
sampleArray.Add("姓名");
sampleArray.Add("年龄");
SS.AddHeaders(sampleArray);

// 加入数据
CString strName[] = {"徐景周","徐志慧","郭徽","牛英俊","朱小鹏"};
CString strAge[] = {"27","23","28","27","26"};
for(int i = 0; i < sizeof(strName)/sizeof(CString); i++)
{
sampleArray.RemoveAll();
sampleArray.Add(strName[i]);
sampleArray.Add(strAge[i]);
SS.AddRow(sampleArray);
}

SS.Commit();

三、 读取Excel文件数据
CSpreadSheet SS("c:\\Test.xls", "TestSheet");

CStringArray Rows, Column;

//清空列表框
m_AccessList.ResetContent();
for (int i = 1; i <= SS.GetTotalRows(); i++)
{
// 读取一行
SS.ReadRow(Rows, i);
CString strContents = "";
for (int j = 1; j <= Rows.GetSize(); j++)
{
if(j == 1)
strContents = Rows.GetAt(j-1);
else
strContents = strContents + " --> " + Rows.GetAt(j-1);
}

m_AccessList.AddString(strContents);
}

阅读全文

与excelc编程实例相关的资料

热点内容
新科源码 浏览:659
如何判断服务器有没有带宽 浏览:41
天正建筑批量删除命令 浏览:94
cad最下面的一排命令都什么意思 浏览:456
pythonimportcpp 浏览:850
W10的系统怎么给U盘加密 浏览:370
华为手机代码编程教学入门 浏览:762
和彩云没会员怎样解压 浏览:634
androidimageview保存 浏览:387
新买店铺什么服务器 浏览:883
文件夹能直接刻录吗 浏览:493
androidxmpp删除好友 浏览:969
javac哪个前景好 浏览:428
中华英才网app为什么不能搜索了 浏览:660
服务器域名是什么意思 浏览:52
Linux导出mysql命令 浏览:159
无诈建邺是什么app 浏览:228
python中的双色球 浏览:168
python解释器里如何换行 浏览:413
python编写格式 浏览:577