c语言编写excel程序,C语言写excel文件(csv格式)

c语言编写excel程序,C语言写excel文件(csv格式)csv 简化版 excel 在 PC 机上等同于 excel 可进行各种 excel 计算 画图 defineEACH FILE MAX BYTE 功能 存放数据为 csv 格式 输入 filename 写入 U 盘的文件名称 如 ai csv name

csv:简化版excel,在PC机上等同于excel,可进行各种excel计算、画图。

#defineEACH_FILE_MAX_BYTE

//——————————————————————-

//功能:存放数据为csv格式

//输入:filename 写入U盘的文件名称,如ai.csv。

//name 变量名称。

//value 值。

//输出:0:成功!0:失败

//备注:

//——————————————————————-

int Hzhy_Write_CsvData(char *filename,char *name,int value)

{

int len = 0,size;

struct tm *p;

char buff[256];

time_t timep;

time(&timep);

if (InitUsb() < 0)

return -1;

p=gmtime(&timep);

size = UsbGetFileSize(filename);

if(size == 0)

{

memset(buff,0,sizeof(buff));

printf(“Build new file\n”);

sprintf(buff,”变量名,时间,值\n”);

len = strlen(buff);

UsbWriteFile(filename,buff,len);

}

else

{

if(size > EACH_FILE_MAX_BYTE)

{

printf(“Beyond the maximum byte limit !\n”);

return MAX_LEN_ERROR;

}

}

/*{

static int i=0;

printf(“csv%03d\n”,i++);

}

*/

memset(buff,0,sizeof(buff));

sprintf(buff,”%s, %d-%d-%d %d:%d:%d,%d\n”,name,(1900+p->tm_year), (1+p->tm_mon),p->tm_mday,p->tm_hour, p->tm_min, p->tm_sec,value);

len = strlen(buff);

UsbWriteFile(filename,buff,len);

return 0;

}

//——————————————————————-

//功能:写文件(包含创建)

//输入:

//输出:>=0:写入的数目<0:失败

//备注:

//——————————————————————-

int UsbWriteFile(char *filename, char *buf, char len)

{

int fd,ret=0;

char name[100];

if (IsUsbExist == 0)

return -1;

if (strlen(filename) > 72)

{

printf(“file name too long!\n”);

return -4;

}

memset(name,0,sizeof(name));

sprintf(name,usb_path);

strcat(name,filename);

//printf(“path:%s\n”,name);

fd = open(name,O_RDWR|O_CREAT);//写方式打开文件,如果文件不存在则创建

if((fd < 0))//打开操作不成功

{

static int cnt=0;

if (cnt == 0)

{

cnt = 1;

printf(“The file can not be opened.\n”);

}

return -2;

}

lseek(fd,0,SEEK_END);//文件指针移动到末尾,追加

ret = write(fd,buf,len);

if (ret < 0)

perror(“write err”);

close(fd);

return ret;

}

//——————————————————————-

//功能:读文件

//输入:

//输出:>=0:读取的数目<0:失败

//备注:

//——————————————————————-

int UsbReadFile(char *filename, char *buf, char len)

{

int fd,ret=0;

char name[100];

if (IsUsbExist == 0)

return -1;

if (strlen(filename) > 72)

{

printf(“file name too long!\n”);

return -4;

}

memset(name,0,sizeof(name));

sprintf(name,usb_path);

strcat(name,filename);

//printf(“path:%s\n”,name);

fd = open(name,O_RDONLY);

if((fd < 0))//打开操作不成功

{

static int cnt=0;

if (cnt == 0)

{

cnt = 1;

printf(“The file can not be opened.\n”);

}

return -2;

}

lseek(fd,0,SEEK_SET);//文件指针移动到开头

ret = read(fd,buf,len);

if (ret < 0)

perror(“read err”);

close(fd);

printf(“read Result:\n%s\n”,buf);

return ret;

}

//——————————————————————-

//功能:获取文件大小

//输入:

//输出:文件大小

//备注:

//——————————————————————-

int UsbGetFileSize(char *filename)

{

int fd,size=0;

char name[100];

if (IsUsbExist == 0)

return -1;

if (strlen(filename) > 72)

{

printf(“file name too long!\n”);

return -4;

}

memset(name,0,sizeof(name));

sprintf(name,usb_path);

strcat(name,filename);

//printf(“path:%s\n”,name);

fd = open(name,O_RDONLY);

if((fd < 0))//打开操作不成功

{

static int cnt=0;

if (cnt == 0)

{

cnt = 1;

printf(“The file can not be opened.\n”);

}

return -2;

}

size = lseek(fd,0,SEEK_END);//文件指针移动到末尾

if (size < 0)

perror(“get size err”);

close(fd);

//printf(“size=%d\n”,size);

return size;

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176111.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午10:41
下一篇 2026年3月26日 下午10:41


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号