C语言如何 *** 作excel文件?

C语言如何 *** 作excel文件?,第1张

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

----------------表格开始-------------------

编号 姓名 性别

1 A 男

2 B 女

3 C 男

---------------表格结束--------------------

那么在保存CSV文件里面数据格式是这样的:

----------------内容开始----------------

编号,姓名,性别

1, A, 男

2, B, 女

3, C, 男

----------------内容结束----------------

用Excel打开是这样的:

下面是示例程序:

#include <stdio.h>

struct Student

{

int id

char name[10]

char gender[3]

}

int main(int argc, char *argv[])

{

// 在程序所在目录下面,可以看见一个名为 student.csv 的文件

FILE * file=fopen("student.csv","w")

struct Student studens[]=

{

{1,"A","男"},

{2,"B","女"},

{3,"C","男"},

}

int studensAmount=sizeof(studens)/sizeof(struct Student)

int i

if(file)

{

fprintf(file,"%s%,%s,%s\n","编号","姓名","性别");

for(i=0i<studensAmounti++)

{

fprintf(file,"%d%,%s,%s\n",studens[i].id,studens[i].name,studens[i].gender)

}

}

fclose(file)

return 0}

简单的方法是通过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 = 0i <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 = 1i <= SS.GetTotalRows()i++)

{

// 读取一行

SS.ReadRow(Rows, i)

CString strContents = ""

for (int j = 1j <= Rows.GetSize()j++)

{

if(j == 1)

strContents = Rows.GetAt(j-1)

else

strContents = strContents + " -->" + Rows.GetAt(j-1)

}

m_AccessList.AddString(strContents)

}

通过ODBC来把Excel的表格文件的当成数据库文件来进行读、写等 *** 作,所以在Excel表格的文件的中写入的行头名必须是唯一(不要重名,相当于数据库中的id值)。本文中对Excel的文件的 *** 作的都被封装进了一个类CSpreadSheet中,通过它我们可以非常的简单的实现各种Excel的表格数据 *** 作,并且可以对该类的进行了扩充来满足自己需求。

具体实现

一、 包含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 strAg【】 = {‘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()


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11490575.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存