[工资管理C程序中如何实现文件的读取与输出]这个需要用的文件的输入和输出函数。 如fprintf、fgets等等函数。 具体格式由于都是概念性问题,建议认真你看一下c语言文件那一章。 我给你例一个例子,说明一下怎么打开文件和...+阅读
如何用C语言实现读取excel文件中的数据呢
基本思路 基础实现方法同上篇文章《直接通过ODBC读、写Excel表格文件》相同,都是通过ODBC来把Excel表格文件当成数据库文件来进行读、写等操作,所以在Excel表格文件中写入的行头名必须是唯一的(不要重名,相当于数据库中的ID值)。本文中对Excel文件的操作都被封装进一个类CSpreadSheet中,通过它我们可以非常简便的实现各种Excel表格数据操作,并且可以对该类进行扩充来满足自己的需。具体实现
一、 包含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 = 0; 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 = 1; i { // 读取一行 SS.ReadRow(Rows, i); CString strContents = ""; for (int j = 1; j { if(j == 1) strContents = Rows.GetAt(j-1); else strContents = strContents + " -->" + Rows.GetAt(j-1); } m_AccessList.AddString(strContents); }
四、 对已存在Excel表格数据进行添加、插入、替换操作 // 初始化测试行数据,进行添加、插入及替换数据操作演示 for (int k = 1; k { testRow.Add("Test"); } SS.AddRow(testRow); // 添加到尾部 SS.AddRow(testRow, 2); // 插入新行到第二行 SS.AddRow(testRow, 6, true); // 替换原第四行来新的内容 SS.AddCell("徐景周", 1,2); // 添加(不存在)或替换(存在)第二行,第一列单元格内容 SS.Commit();
五、 对已存在Excel表格数据进行行、列、单元格查询 void CExcelAccessDlg::OnQuery() { CSpreadSheet SS("c:\\Test.xls", "TestSheet"); CStringArray Rows, Column; CString tempString = ""; UpdateData(); if(m_strRow == "" & m_strColumn == "") // 查询为空 { AfxMessageBox("行号、列号不能同时为空!"); return; } else if(m_strRow == "" & m_strColumn != "") // 查询指定列数据 { int iColumn = atoi(m_strColumn); int iCols = SS.GetTotalColumns(); if(iColumn >iCols) // 超出表范围查询时 { CString str; str.Format("表中总列数为: %d, ", iCols); AfxMessageBox(str + " 查询列数大于Excel表中总列数,请重新输入!"); return; } // 读取一列数据,并按行读出 if(!SS.ReadColumn(Column, iColumn)) { AfxMessageBox(SS.GetLastError()); return; } CString tmpStr; for (int i = 0; i { tmpStr.Format("行号: %d, 列号: %d ,内容: %s\n", i+1,iColumn,Column.GetAt(i)); tempString += tmpStr; } AfxMessageBox(tempString); } else if(m_strRow != "" & m_strColumn == "") // 查询指定行数数据 { int iRow = atoi(m_strRow); int iRows = SS.GetTotalRows(); if(iRow >iRows) // 超出表范围查询时 { CString str; str.Format("表中总行数为: %d, ", iRows); AfxMessageBox(str + " 查询行数大于Excel表中总行数,请重新输入!"); return; } // 读取指定行数据 if(!SS.ReadRow(Rows, iRow)) { AfxMessageBox(SS.GetLastError()); return; } CString tmpStr; for (int i = 0; i { tmpStr.Format("行号: %d, 列号: %d ,内容: %s\n", iRow, i+1, Rows.GetAt(i)); tempString += tmpStr; } AfxMessageBox(tempString); } else if(m_strRow != "" & m_strColumn != "") // 查询指定单元格数据 { int iRow = atoi(m_strRow), iColumn = atoi(m_strColumn); int iRows = SS.GetTotalRows(), iCols = SS.GetTotalColumns(); if(iColumn >iCols) // 超出表范围查询时 { CString str; str.Format("表中总列数为: %d, ", iCols); AfxMessageBox(str + " 查询列数大于Excel表中总列数,请重新输入!"); return; } else if(iRow >iRows) { CString str; str.Format("表中总行数为: %d, ", iRows); AfxMessageBox(str + " 查询行数大于Excel表中总行数,请重新输入!"); return; } // 读取指定行、列单元格数据 if(!SS.ReadCell(tempString, iColumn, iRow)) { AfxMessageBox(SS.GetLastError()); return; } CString str; str.Format("行号: %d, 列号: %d ,内容: %s", iRow,iColumn,tempString); AfxMessageBox(str); } }
六、 将存在的Excel转换另存为指定分隔的文本文件 // 将原Excel文件转换为用分号分隔的文本,并另存为同名文本文件 SS.Convert(";");
七、 删除Excel中表格 SS. DeleteSheet(); // 删除Excel文件中所有表格 SS. DeleteSheet(" TestSheet "); // 删...
怎么用c读取excel中的数据或者用MATLAB读取 2000行62列要
matlab的帮助里面有例子: Example -- Importing Data From an Excel Application Assume that you have an Excel spreadsheet stocks.xls. This spreadsheet contains the prices of three stocks in row 3 (columns 1 through 3) and the number of shares of these stocks in rows 6 through 8 (column 2). Initiate conversation with Excel with the command channel = ddeinit('excel','stocks.xls') DDE functions require the rxcy reference style for Excel worksheets. In Excel terminology the prices are in r3c1:r3c3 and the shares in r6c2:r8c2. Request the prices from Excel: prices = ddereq(channel,'r3c1:r3c3') prices = 42.50 15.00 78.88 Next, request the number of shares of each stock: shares = ddereq(channel, 'r6c2:r8c2') shares = 100.00 500.00 300.00
请问有没有与excel配套的c语言编程软件比如可以读取excel表格中
有的,这个最专业的用vsto
简介:VSTO(Visual Studio Tools for Office )是VBA的替代,使得开发Office应用程序更加简单,并且用VSTO来开发office应用程序可以使用Visual studio开发环境中的众多功能和CLR提供的内存管理,垃圾回收等功能。正如其名,VSTO是一套用于创建自定义Office应用程序的Visual Studio工具包。VSTO使你可以用Visual Basic 或者Visual C#扩展Office应用程序(例如Word、Excel、InfoPath和Outlook)。你是使用强大的Visual Studio开发环境来创建你的定制程序,而不是使用Visual Basic for Application(VBA)和Office里的Visual Basic Editor(VBE)。无论你是创建简单的数据录入应用程序还是复杂的企业解决方案,VSTO都使之变得容
延伸阅读:
如何用C语言编写学生信息管理系统参考如下学生信息管理系统的C源代码吧。#include#include/*定义学生结构体*/ struct Student { char ID[20]; char Name[20]; float Mark1; float Mark2; float Mark3; floa...
如何用Dos档合并文件我们都知道DOS命令Copy的主要作用是复制文件,可是你是否知道,它还有一个作用是合并文件呢? 一般情况下,它主要用于合并相同类型的文件,比如将两个文本文件合并为一个文本文件、将...
如何用网络数据收集一个人的整体数据近年来,随着技术的进步、互联网速度提升、移动互联网更新换代、硬件技术不断发展、数据采集技术、存储技术、处理技术得到长足的发展,使我们不断加深了对数据分析的需求。但数...
C语言数据结构与算法分析C语言描述Position不是一个类型,起码C语言中,我写那么多年代码没见过这个类型 。你该把整段代码贴上来。我猜你看的那段代码是伪代码,Position是自定义类型。若Position是类名,那么Positi...
如何用EXCEL做数据分析思路在哪如何用EXCEL做数据分析思路在哪,数据分析需要掌握些什么知识:数据收集 第一手数据:主要指可直接获取的数据;第二手数据:指经过加工整理后得到的数据 数据处理 目的:从大量的、杂乱...
求助如何用 excel求助如何用 excel,Excel报价单格式样本:第一:安装excel插件。运行exwinner.exe,安装完启动excel,excel会多出一个Tab"利驰报价ExWinner"。 第二:创建工程和分类。 (1)切换到exwinn...
如何用C语言读入和输出excel里的数据如何用C语言读入和输出excel里的数据,在C语言中如何将EXCEL或者文档中的数据读入程序中:简单的方法是通过ODBC来实现: 具体实现 一、 包含Excel文件操作类头文件 #include "CSpr...
c读取excel中数据的方法c读取excel中数据的方法,如何用c语言提取excel中的数据:using System; using System.Reflection; using Excel = Microsoft.Office.Interop.Excel; namespace CExcel1 { class...
如何用Excel制作记账本想做一个简单明了的生活记账表因为我没有电脑所以是做手工帐:用Excel制作记账本,可以按用途功能来制作,方法如下: 一、初步设计账本 1、首先罗列出你日常生活中的开销,可以分为几...