当前位置: 首页 > article >正文

C语言操作EXCEL文件(读写)

C语言操作EXCEL文件(读写)本文主要介绍通过纯C语言进行EXCEL的读写操作修改时间2018.08.28如果运行结果均是0请看文章最后一节在之前需要使用C语言读取Excel文件内容的功能查阅了很多资料大部分是通过ODBC或者过OLE/COM对Excel表格的读取操作这变要求在工程中添加类如CApplicaton及其头文件等这包括Excel接口、导入类、头文件等。操作十分复杂当然我也对这种方法进行了尝试也实现了功能这种方法实现的功能比较多一般我们只是进行简单的读写操作所以并不是很想使用这种方法。下面通过C语言读写程序来实现。一、写操作第一步单纯C语言写入Excel文件只能是 *.csv的后缀文件是和txt一样以二进制文本形式存储它是以都逗号分隔符做个单元格内容的划分 .xls存储比较复杂 .csv文件可以可以通过.xls或者.xlsx文件另存为选择.csv文件格式它们可以通过Notepad等记事本软件当做txt文件打开。需要注意的是当对*.xls文件写入或者读取之后再打开Excel文件时会弹出格式兼容的提示窗口因为这样的C语言操作Excel文件是当文本文件打开操作的所以会忽略原有格式但是不影响点击“是(Y)”即可如下图所示第二步对表格的处理使用C语言打开表格后文件指针指向整个表格的第1行第1列。如果要给它的下一个同行单元格第1行第2列写数据使用\t ;如果要给它的下一个同列单元格第2行第1列写数据使用\n 。具体代码如下void writeExcel() { char chy[4]{ x ,a ,h,w } ; int data[4]{ 1 , 3 , 6 ,9 }; int i ; FILE *fp NULL ; fp fopen(G:\\Desktop\\test.csv,w) ; for (i0 ; i4 ;i) fprintf(fp,%c\t%d\n,chy[i],data[i] ) ; fclose(fp); } void main() { writeExcel() ; }运行结果二、读操作读取文件对于读取Excel文件的操作使用了文件随机定位函数fseek(),它的一般调用格式如下fseek(文件指针位移量起始位置) ;**fseek()**参数说明位移量: 指重新定位时的字节偏移数表示相对于基址的字符数通常是一个长整型数可以是整形常量整形表达式等。如果用整型常量需要再后面加上字母“L”如果使用整形表达式需要用“(long)(表达式)”强制转换成长整形。起始位置指重新定位时的基准点也就是基址用整数或符合常量表示。如下表整数符号常量对应的起始位置SEEK_SET文件开头SEEK_CUR文件指针的当前位置SEEK_END文件末尾例如fseek(fp , 10L , 0) ;具体代码如下#include void main() { FILE *fp; char filename[40] ; int i,j ; float da[6][5] {0} ; printf( 输入文件名: ); gets(filename); fpfopen(filename,r); // fp指针指向文件头部 for(i 0 ;i 6 ; i) for(j 0 ;j 5 ; j) { fscanf(fp,%f,da[i][j]); fseek(fp, 5L, SEEK_CUR); /*fp指针从当前位置向后移动*/ } for(i 0 ;i 6 ; i) printf(%f\t%f\t%f\t%f\t%f\t\n,da[i][0], da[i][1],da[i][2],da[i][3],da[i][4]); }运行结果十分抱歉由于个人疏忽代码给大家带来麻烦再次表示抱歉。以上读Excel文件的错误已经解决代码已经更新错误的产生是由于fseek( )函数放错了位置以及其中第二个参数的偏移量的错误若大家在以后学习中发现读取数据全为0或者读取数据顺序位置不正确请查阅fseek( )函数的参数使用方法。另外上述开发是在CodeBlocks中进行的如果使用Visual Stdio 2010等版本软件出现闪退问题是软件自身bug所致在main( )函数结尾添加system(“pause”); 或者getchar( ); 即可解决对应的VS2010读Excel实例如下例程读该Excel文件代码如下#include void main() { FILE *fp; char filename[40] ; int i,j ; float da[6][5] {0} ; printf( 输入文件名: ); gets(filename); fpfopen(as.csv,r); fseek(fp, 5L, SEEK_SET); // 从文件第二行开始读取 for(i 0 ;i 6 ; i) for(j 0 ;j 5 ; j) { fscanf(fp,%f,da[i][j]); fseek(fp, 1L, SEEK_CUR); /*fp指针从当前位置向后移动*/ } for(i 0 ;i 6 ; i) printf(%f\t%f\t%f\t%f\t%f\t\n,da[i][0], da[i][1],da[i][2],da[i][3],da[i][4]); getchar() ; }VS2010工程如下运行结果三、最新补充 2018.08.28由于经常有朋友告诉我运行结果是0 并将他们的工程发到我邮箱我试着运行了下确实发现是0.0 程序没有报错。然后我试着将他们发给我的工程里的excel文件或者csv文件打开发现会弹出提示文件损坏如果我点击“是”的话文件同样可以继续打开这可能是文件格式损坏了所以程序计算不了数据的位置。我简单的将他们的excel文件重新另存为了一个excel便运行成功了。他们的excel问题如下图。损坏后还可以打开谢谢 有问题可以一起讨论下不过希望自己能够一步从简到繁的进行调试也是一种学习希望不用直接把代码扔过来让给修改。

相关文章:

C语言操作EXCEL文件(读写)

C语言操作EXCEL文件(读写) 本文主要介绍通过纯C语言进行EXCEL的读写操作:(修改时间2018.08.28,如果运行结果均是0,请看文章最后一节) 在之前需要使用C语言读取Excel文件内容的功能,查阅了很多资料&#xff…...

FigmaCN:3步告别英文界面困扰,让设计效率提升50%

FigmaCN:3步告别英文界面困扰,让设计效率提升50% 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面而分心吗?每次看到"Fram…...

如何构建企业级离线语音合成系统?tts-vue的架构解析与实战应用

如何构建企业级离线语音合成系统?tts-vue的架构解析与实战应用 【免费下载链接】tts-vue 🎤 微软语音合成工具,使用 Electron Vue ElementPlus Vite 构建。 项目地址: https://gitcode.com/gh_mirrors/tt/tts-vue 在数字化办公与智…...

UnityStandaloneFileBrowser快速入门:5分钟学会使用原生文件选择器

UnityStandaloneFileBrowser快速入门:5分钟学会使用原生文件选择器 【免费下载链接】UnityStandaloneFileBrowser A native file browser for unity standalone platforms 项目地址: https://gitcode.com/gh_mirrors/un/UnityStandaloneFileBrowser UnitySta…...

设计租房收支智能监管模拟计算器,登记房东租金流水,自动核算涉税基准金额,展示租客房东收支合规对账明细。

一、实际应用场景描述场景设定:你是一名代账会计 / 住房租赁平台的风控人员,负责监管多个房源的租金流水。典型流程:1. 出租签约- 房东 A 将房屋出租给租客 B- 月租金 6000 元,押一付三2. 资金流动- 租客支付租金- 平台/管家代收代…...

实战分享怎样实现IntelliJ IDEA 打包 Web 项目 WAR 包(含 Tomcat 部署 + 常见问题解决)

在 Java Web 开发中,“本地能跑”只是第一步,真正让很多人头疼的是后续这条链路: 项目打包 → 生成 WAR → 部署 Tomcat → 启动验证 → 排查报错。尤其是刚从 Spring Boot 内嵌容器模式转向传统 WAR 部署、或者接手老项目时,常常…...

DeepBlueCLI高级配置:自定义正则表达式与安全名单优化

DeepBlueCLI高级配置:自定义正则表达式与安全名单优化 【免费下载链接】DeepBlueCLI 项目地址: https://gitcode.com/gh_mirrors/de/DeepBlueCLI DeepBlueCLI是一款功能强大的事件日志分析工具,能够帮助安全分析师快速识别系统中的可疑活动。通过…...

设计直播主播流水记账监控简易仿真程序,自动分类带货收支数据,识别异常隐匿收入账目标,记疑似偷漏税数据项。

一、实际应用场景描述场景设定:你是某 MCN 机构的财务或风控人员,负责监控旗下直播主播的带货流水。典型流程:1. 直播带货- 主播 A 在某平台直播- 观众下单 → 平台结算 → 主播/机构分账2. 资金流向- 平台结算款(含佣金、坑位费、…...

AirPodsDesktop:解锁Windows电脑上AirPods隐藏功能的神奇工具

AirPodsDesktop:解锁Windows电脑上AirPods隐藏功能的神奇工具 【免费下载链接】AirPodsDesktop ☄️ AirPods desktop user experience enhancement program, for Windows and Linux (WIP) 项目地址: https://gitcode.com/gh_mirrors/ai/AirPodsDesktop 还在…...

TinyEditor代码深度解析:揭秘超小型编辑器的实现魔法

TinyEditor代码深度解析:揭秘超小型编辑器的实现魔法 【免费下载链接】TinyEditor A functional HTML/CSS/JS editor in less than 400 bytes 项目地址: https://gitcode.com/gh_mirrors/ti/TinyEditor TinyEditor是一款令人惊叹的超小型HTML/CSS/JS编辑器&a…...

Windows Cleaner:系统优化工具的技术哲学与实践

Windows Cleaner:系统优化工具的技术哲学与实践 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 当C盘空间告急的红色警告成为数字生活的日常&#xff…...

如何构建安全可靠的 myDrive 用户认证系统:JWT访问令牌与刷新令牌完整指南

如何构建安全可靠的 myDrive 用户认证系统:JWT访问令牌与刷新令牌完整指南 【免费下载链接】myDrive Node.js and mongoDB Google Drive Clone 项目地址: https://gitcode.com/gh_mirrors/my/myDrive 在当今数字化时代,用户认证是任何Web应用程序…...

如何解锁NVIDIA显卡隐藏性能:NVIDIA Profile Inspector终极配置指南

如何解锁NVIDIA显卡隐藏性能:NVIDIA Profile Inspector终极配置指南 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector是一款能够深入调整NVIDIA显卡参数的专业工具&…...

如何高效实现OpenVAS Scanner扫描插件结果数据备份与恢复:完整测试指南

如何高效实现OpenVAS Scanner扫描插件结果数据备份与恢复:完整测试指南 【免费下载链接】openvas-scanner This repository contains the scanner component for Greenbone Community Edition. 项目地址: https://gitcode.com/GitHub_Trending/op/openvas-scanner…...

glogg实战指南:跨平台高效日志分析解决方案深度解析

glogg实战指南:跨平台高效日志分析解决方案深度解析 【免费下载链接】glogg A fast, advanced log explorer. 项目地址: https://gitcode.com/gh_mirrors/gl/glogg 面对海量日志文件时,传统文本编辑器和命令行工具的局限性日益凸显:内…...

5分钟掌握spacetime:轻量级JavaScript时区库的终极入门指南

5分钟掌握spacetime:轻量级JavaScript时区库的终极入门指南 【免费下载链接】spacetime A lightweight javascript timezone library 项目地址: https://gitcode.com/gh_mirrors/sp/spacetime spacetime是一款轻量级JavaScript时区处理库,专为简化…...

Compojure测试驱动开发:如何为路由编写单元测试的终极指南

Compojure测试驱动开发:如何为路由编写单元测试的终极指南 【免费下载链接】compojure A concise routing library for Ring/Clojure 项目地址: https://gitcode.com/gh_mirrors/co/compojure Compojure作为Clojure生态中简洁高效的路由库,其测试…...

终极bufferline.nvim开发者指南:扩展与贡献代码的完整教程

终极bufferline.nvim开发者指南:扩展与贡献代码的完整教程 【免费下载链接】bufferline.nvim A snazzy bufferline for Neovim 项目地址: https://gitcode.com/gh_mirrors/bu/bufferline.nvim bufferline.nvim是一款为Neovim打造的时尚缓冲区管理插件&#x…...

MySQLd Exporter社区贡献指南:从用户到开发者的转变

MySQLd Exporter社区贡献指南:从用户到开发者的转变 【免费下载链接】mysqld_exporter Exporter for MySQL server metrics 项目地址: https://gitcode.com/gh_mirrors/my/mysqld_exporter MySQLd Exporter作为Prometheus生态中重要的MySQL性能指标采集工具&…...

一键部署LongCat-Image-Edit:开箱即用的文本驱动图像编辑模型

一键部署LongCat-Image-Edit:开箱即用的文本驱动图像编辑模型 1. 模型核心能力与技术特点 LongCat-Image-Edit是美团LongCat团队推出的轻量级图像编辑模型,专注于通过自然语言指令实现精准的图像修改。这个6B参数的模型在多项基准测试中达到了开源模型…...

golang如何使用Wails开发桌面应用_golang Wails桌面应用开发步骤

Wails init失败需先检查Node.js和npm版本,换淘宝镜像;Go方法需结构体绑定//wails:export注释,参数返回值受限;前端须在wails.ready()后调用;构建时注意cgo依赖与系统环境。Wails init 项目失败:npm install…...

Chipmunk2D跨平台部署指南:从桌面到移动端的完整解决方案

Chipmunk2D跨平台部署指南:从桌面到移动端的完整解决方案 【免费下载链接】Chipmunk2D A fast and lightweight 2D game physics library. 项目地址: https://gitcode.com/gh_mirrors/ch/Chipmunk2D Chipmunk2D是一款轻量级的2D物理引擎库,它以高…...

DCT-Net多风格人像卡通化:一站式解决方案

DCT-Net多风格人像卡通化:一站式解决方案 一张普通照片,瞬间变成多种风格的卡通形象,这不是魔法,而是AI的力量 你有没有想过,自己的照片能变成各种风格的卡通形象?比如精致的3D动画角色、清新的手绘插画&am…...

5分钟掌握B站视频转文字:免费开源工具bili2text终极指南

5分钟掌握B站视频转文字:免费开源工具bili2text终极指南 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 还在为手动整理B站视频内容而烦恼吗&…...

用超运算统一些常见的运算

Hn(a,b)H_n(a,b)Hn​(a,b) 递归定义如下: Hn(a,b){b1n0,an1,  b0,1n≥2,  b0,Hn−1(a,  Hn(a,b−1))n≥1,  b≥1. H_n(a, b) \begin{cases} b 1 & n 0, \\ a & n 1,\; b 0, \\ 1 & n \ge 2,\; b 0, \\ H_{n-1}\big(a,\;H_n(a, b-1)\big) …...

从Java转行大模型应用,大模型量化实现,AWQ 与 GPTQ 算法

一、算法总览1. AWQ(Activation-aware Weight Quantization,激活感知权重量化)定位:仅权重量化(Weight-only) 的后训练量化(PTQ)算法,专为大语言模型(LLM&…...

C++20中views的学习和使用

如你所知,C标准库从C98发布以来在机制层面一直没有较大变动。直到C20中range的引入,再次使得沉寂许久的C标准库再次焕发了生机。range 库主要作用于对具有范围的数据处理。对于确定范围的数据,在传统标准库中也有对应的处理方案。但 range 对…...

从Java转行大模型应用,Transformers 原生支持的大模型量化算法PTQ、QAT

一、量化基础概念1. 什么是模型量化将模型的高精度参数(FP32/FP16/BF16) 转换为低精度参数(INT8/INT4) 的技术,核心目标:减少模型显存占用(INT4 比 FP16 小 75%)提升推理速度、降低算…...

ThetaGang高级功能揭秘:VIX对冲与现金管理策略

ThetaGang高级功能揭秘:VIX对冲与现金管理策略 【免费下载链接】thetagang ThetaGang is an IBKR bot for collecting money 项目地址: https://gitcode.com/gh_mirrors/th/thetagang ThetaGang是一款功能强大的IBKR交易机器人,最初作为"The…...

SillyTavern终极指南:从零开始打造你的AI对话前端

SillyTavern终极指南:从零开始打造你的AI对话前端 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern SillyTavern是一款专为高级用户设计的LLM前端界面,提供强大的AI对…...