c语言实现excel读取

c语言中没有直接读取excel的库,所以需要先将excel转成csv格式的文件

使用FLIE类去定义一个FILE结构体类型的指针file

FILE* file =fopen("文件目录","r");

//其中fopen函数第一个参数是文件目录,第二个是读取模式
r  - open for reading
w  - open for writing (file need not exist)  如果文件不存在,就创建一个新的。
a  - open for appending (file need not exist)
r+ - open for reading and writing, start at beginning
w+ - open for reading and writing (overwrite file)
a+ - open for reading and writing (append if file exists)

//需要加一个判断是否打开文件

if (file == NULL) {
        perror("Error opening file");
        return -1;
    }
//perror函数用来将上一个函数发生错误的原因输出到标准设备(stderr)

我这里采用一行一行读取


char line[1024];
int isFirstLine = 1;

//fgets函数原型 char *fgets (char *str, int n, FILE *stream);
//第一个是指向一个字符数组的指针,该数组存储了要读取的字符串
//n 是要读取的最大字符数(包括最后的空字符)
//stream是要读取的文件
//功能:从指定的流 stream 读取一行,并把它存储在str所指向的字符串内

while(fgets(line, sizeof(line), file))
{
//去除excel第一行标题行
    if (isFirstLine) 
    {
            isFirstLine = 0;
            continue;
    }
        int i = 0;
        line[strcspn(line, "\n")] = 0;

        // 使用strtok依次读取第一列、第二列和第三列数据
        char* token1 = strtok(line, ",");
        char* token2 = strtok(NULL, ",");
        char* token3 = strtok(NULL, ",");
//atoi函数用来将char转换为int
        int id = atoi(token1);
        int distance = atoi(token2);
        int angle = atoi(token3);

        if (token1 != NULL && token2 != NULL && token3 != NULL) {

           printf("%d,%d,%d",id,distance,angle);
        }
}

最后我们需要将文件关闭

fclose(file);

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值