用c语言往excel里写数据,

Python016

用c语言往excel里写数据,,第1张

简单的方法是通过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)

}

可以啊,你要明白任何语言,程序包括操作系统,都是在C语言的基础上开发的。

#include <stdio.h>  

  

void writeExcel(void ) {  

      

    FILE *fp = NULL  

    int t  

    char ch  

  

    fp = fopen("F:\\test.xls", "w")  

      

    for (int i = 0 i < 10 i++) {  

        printf("please input:")  

        scanf("%d %c", &t, &ch)  

        fprintf(fp, "%d\t%c\n", t, ch)  

    }  

    fclose(fp)  

  

}  

  

int main() {  

  

    writeExcel()  

  

    return 0  

}

你好,

EXCEL支持.csv(comma

seperated

value)

文件格式的读入,也就是“用逗号分隔的值”的形式。例如你有一组数据:

/*

姓名年龄班级

张三22 12

...... ...

*/它的CSV表示格式就是:

/*

姓名,年龄,班级

张三,22,12

...,...,...

*/EXCEL支持CSV格式,它可以打开CSV文件,并且CSV文件中的一个“,”对应的就是EXCEL表格中的一列的分界线。所以,你的C语言输出成.CSV格式的文件就可以直接被EXCEL读入了。

例如:

#include

struct MyData {

char *name //姓名

int age //年龄

int grade//班级

}

int write_to_csv(int count, struct MyData *data)

{

FILE *f = fopen("Mydata.csv", "w") //写Mydata到Mydata.csv

if (f == NULL) return -1

for (int i=0i<counti++) //这里的count是你的MyData的个数

{

//fprintf的用法和printf一致,只是它是写入文件的。

fprintf(f,"%d,%s,%f\n",data[i].name, data[i].age, data[i].grade)

}

fclose(f)

return 0

}谢谢,望采纳。