搜索
bottom↓
回复: 28

到这里问个软件的事情合适不?XLS文件能用C语言写数据么?

[复制链接]

出0入0汤圆

发表于 2018-6-24 12:30:43 | 显示全部楼层 |阅读模式
据说XLS文件没有开放接口,写不成?有没有哪位大师给个例程?谢谢了。我试了一下,不太成功,

#include <stdio.h>
void writeExcel()
{
    char chy[4]={ 'a' ,m' ,o','b' ,b',s' } ;
    int data[4]={ 1 , 2,3 ,4,5, 6};
    int i ;
    FILE *fp = NULL ;
    fp = fopen(".\\xlsWrite.xls","w") ;
    for (i=0 ; i<6 ;i++)
        fprintf(fp,"%c\t%d\n",chy[i],data[i] ) ;
    fclose(fp);
}
int main()
{                  
    writeExcel()  ;
    return 0;
}
打开这个文档的时候,老是显示错误。

出0入0汤圆

发表于 2018-6-24 12:52:57 | 显示全部楼层
有的,数据流,最简单是用控件

出0入0汤圆

发表于 2018-6-24 12:56:44 | 显示全部楼层
你破坏了Excel的格式。

出0入0汤圆

发表于 2018-6-24 13:05:01 来自手机 | 显示全部楼层
有开源的c++库,我用过

出0入0汤圆

发表于 2018-6-24 13:06:17 来自手机 | 显示全部楼层
楼主的直接写的方法,可以写成CSV格式,Excel也能打开

出0入0汤圆

 楼主| 发表于 2018-6-24 13:12:03 | 显示全部楼层
nanfang2000 发表于 2018-6-24 13:05
有开源的c++库,我用过

能否给个例程?
谢谢了。

出0入0汤圆

发表于 2018-6-24 13:23:50 来自手机 | 显示全部楼层
python可以

出0入0汤圆

发表于 2018-6-24 13:26:26 来自手机 | 显示全部楼层
正在用vc6处理excel文件,尽管老,但是好用,高效

出0入4汤圆

发表于 2018-6-24 13:34:09 来自手机 | 显示全部楼层
用python,非常简单

出0入0汤圆

发表于 2018-6-24 15:21:44 来自手机 | 显示全部楼层
xls  有 xlm格式的,你在excel 另存为xlm然后当文木打开,你就明了

出0入10汤圆

发表于 2018-6-24 17:02:58 | 显示全部楼层
你这种写法是写CSV的,XLS是有文件头的,写XLS的要简单可以用控件。

出0入362汤圆

发表于 2018-6-24 18:54:47 | 显示全部楼层
python吧,轮子都是现成的。

出0入37汤圆

发表于 2018-6-24 19:52:58 | 显示全部楼层
vba,人家自带编程语言

出0入0汤圆

发表于 2018-6-24 20:01:40 | 显示全部楼层
https://www.codeproject.com/Arti ... -Write-to-Microsoft

C++的就有

出0入0汤圆

发表于 2018-6-24 20:30:03 | 显示全部楼层
为毛这么费劲,C#用NPOI就是

出0入0汤圆

 楼主| 发表于 2018-6-24 21:34:10 | 显示全部楼层
负西弱 发表于 2018-6-24 20:01
https://www.codeproject.com/Articles/13852/BasicExcel-A-Class-to-Read-and-Write-to-Microsoft

C++的 ...

谢谢您,十年我用过这个网站,那时候还在部队,这么长时间不用了,帐号怕早已不在了吧?
您能否把这个程序给贴出来啊?貌似上面有两个,都下下来可以吗?

出0入0汤圆

发表于 2018-6-25 09:28:26 | 显示全部楼层
gracialee 发表于 2018-6-24 13:12
能否给个例程?
谢谢了。

http://qtxlsx.debao.me/
这个库需要QT5,所以对你不一定合用。
按照你的需求,似乎csv格式即可,这个非常简单,最基本的文件读写就能实现。你可以搜csv的实现方式
我平常工作,如果不要特效,都是直接处理成csv的

出0入25汤圆

发表于 2018-6-25 09:55:59 | 显示全部楼层
github  搜 libexcel C的

出10入284汤圆

发表于 2018-6-25 10:03:57 来自手机 | 显示全部楼层
python xlwt xlrd

出0入0汤圆

发表于 2018-6-25 10:04:37 | 显示全部楼层
LibXL 不过是C++的,好处是不需要安装引擎,不过是收费的

出0入0汤圆

 楼主| 发表于 2018-7-16 12:10:01 | 显示全部楼层
WinExt 发表于 2018-6-25 10:04
LibXL 不过是C++的,好处是不需要安装引擎,不过是收费的

您好,已在网上找到一个LIBXL的库,名字是LibXL-for-Windows-3.8.0,也成功实现了C++环境下对XLS文件的写入操作,但就是这个例程太大了,您能否帮我把这个工程精简点啊?

出0入0汤圆

发表于 2018-7-16 22:33:08 | 显示全部楼层
gracialee 发表于 2018-7-16 12:10
您好,已在网上找到一个LIBXL的库,名字是LibXL-for-Windows-3.8.0,也成功实现了C++环境下对XLS文件的写 ...

例程大不大有什么关系,你只是看他的实现方法,又不是直接用例程来做工程

出0入0汤圆

 楼主| 发表于 2018-7-17 11:06:26 | 显示全部楼层
WinExt 发表于 2018-7-16 22:33
例程大不大有什么关系,你只是看他的实现方法,又不是直接用例程来做工程 ...

您说的没错,我就是想把这个例程的核心部分扣下来,学会应用的第一步吧。。。。

出0入0汤圆

发表于 2018-7-17 11:09:30 | 显示全部楼层
github 找开源

出0入93汤圆

发表于 2018-7-17 11:32:22 | 显示全部楼层
Excel 3.0的文件格式网上都有,你可以保存为.xls文件,可以用Excel打开。
格式好简单哦。
不过我只有Delphi版的,虽然改成C版的很简单,但是我懒啊不改。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2018-7-17 15:02:01 | 显示全部楼层
takashiki 发表于 2018-7-17 11:32
Excel 3.0的文件格式网上都有,你可以保存为.xls文件,可以用Excel打开。
格式好简单哦。
不过我只有Delphi ...

谢谢您的回复,简单格式的写入已经实现,但那只是一个普通的纯文本文件,不是真正意义上的XLS。我继续寻找。。。。。。

出0入93汤圆

发表于 2018-7-17 15:07:45 | 显示全部楼层
gracialee 发表于 2018-7-17 15:02
谢谢您的回复,简单格式的写入已经实现,但那只是一个普通的纯文本文件,不是真正意义上的XLS。我继续寻 ...

您是不是搞错了什么,这个是标准的Excel 3.0二进制格式哦,不是纯文本……只是是非常早期的Excel格式了,功能很少的那种。
您要觉得这些东西都是文本文件,那世界上大概就没有不是文本文件的东西了。
  1. const
  2.   CXlsBof: array[0..5] of Word = ($809, 8, 00, $10, 0, 0);
  3.   CXlsEof: array[0..1] of Word = ($0A, 00);
  4.   CXlsLabel: array[0..5] of Word = ($204, 0, 0, 0, 0, 0);
  5.   CXlsNumber: array[0..4] of Word = ($203, 14, 0, 0, 0);
  6.   CXlsRk: array[0..4] of Word = ($27E, 10, 0, 0, 0);
  7.   CXlsBlank: array[0..4] of Word = ($201, 6, 0, 0, $17);
复制代码

出0入0汤圆

 楼主| 发表于 2018-7-17 22:19:36 | 显示全部楼层
takashiki 发表于 2018-7-17 15:07
您是不是搞错了什么,这个是标准的Excel 3.0二进制格式哦,不是纯文本……只是是非常早期的Excel格式了, ...

再次谢谢您的回复。可能是我没有说明白。前述的文本,指的是我楼主位的那段。您的这个DELPHi我没能看懂,但还是向您表示感谢。。。。

出0入0汤圆

发表于 2018-7-17 22:46:09 | 显示全部楼层
貌似用c++ 调用ado更简单,方便一些吧。把excel 当个数据库操作就好了。你可以搜搜,肯定行的。多年前还在上学的时候弄过。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 07:10

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表