作者:乔山办公网日期:
返回目录:excel表格制作
如果数据简单的话,可以使用CSV(逗号分隔值)格式的文件。CSV格式的文件可以用OfficeExcel 打开。比如有要保存的一张表格e799bee5baa6e58685e5aeb9332是这样的:
----------------表格开始-------------------
编号 姓名 性别
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");
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=0;i
{
fprintf(file,"%d%,%s,%s\n",studens[i].id,studens[i].name,studens[i].gender);
}
}
fclose(file);
return 0;
}
简单的方法是通过ODBC来实现:7a686964616fe4b893e5b19e337
具体实现
一、 包含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);
}
也许 你该去excel里玩vba, 必要时 算法部分用C写dll,给vba调用
也许 你该去 excel里 文件另存为 *.csv(逗号分隔列的txt)然后c去读txt 处理之