如何用C语言读入和输出excel里的数据?

作者&投稿:仝翰 (若有异议请与网页底部的电邮联系)
在C语言中,如何将EXCEL或者文档中的数据读入程序中?~

1 使用的命名空间为:using System.Data.OleDb;
2 连接数据库的字符串为:
string myConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\
目录.xls;Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\"";
*.xsl可以认为是数据库了,HDR表示是否隐藏excel的第一行(因为第一行一般表示字段名称)
IMEX 参数,因为不同的模式代表著不同的读写行为:当IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。
当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。当 IMEX=2 时为“连结模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。
3.OleDbConnection myConnection = new OleDbConnection(myConn);
4.string mySQLstr = "SELECT f1,f2,f5 FROM [Sheet1$]";
//[Sheet1$]就是表格了,选取第1,2,5列,用Fn表示第n列5 OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(mySQLstr, myConnection);6 DataSet myDS = new DataSet();7 myDataAdapter.Fill(myDS, "[Sheet1$]");
//原理都跟读取sql是一样
DataTable dt = myConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
//把相关信息记录到datatable中
string tbname = dt.Rows[0][2].ToString().Trim();
//读取表名信息【注意】由于excel每个单元格内数据默认的格式为:varchar(255),因此读取超过255的单元格内容是需要修改注册表,这里提供修改方法:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel]"TypeGuessRows"="0"表示从前TypeGuessRows行判断数据的类型。

简单的方法是通过ODBC来实现:
具体实现
一、 包含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 < sizeof(strName)/sizeof(CString); 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.GetTotalRows(); i++)
{
// 读取一行
SS.ReadRow(Rows, i);
CString strContents = "";
for (int j = 1; j <= Rows.GetSize(); j++)
{
if(j == 1)
strContents = Rows.GetAt(j-1);
else
strContents = strContents + " --> " + Rows.GetAt(j-1);
}

m_AccessList.AddString(strContents);
}

简单的方法是通过ODBC来实现:
具体实现
一、 包含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 < sizeof(strName)/sizeof(CString); 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.GetTotalRows(); i++)
{
// 读取一行
SS.ReadRow(Rows, i);
CString strContents = "";
for (int j = 1; j <= Rows.GetSize(); j++)
{
if(j == 1)
strContents = Rows.GetAt(j-1);
else
strContents = strContents + " --> " + Rows.GetAt(j-1);
}

m_AccessList.AddString(strContents);
}

excel 其实是个数据库,用数据库操作方法就可以了!其次是合理运用 \t \r \n就能直接用txt文件用excel的后缀名!(有数据都输出到第一个单元格是没有用 \t \r ,我们在项目中就是直接用二进制文件用excel打开,比较简单方便 )

很难,建议用Java,这个倒是没有问题的


scanf在c语言中的作用
scanf是c语言中的标准库函数,主要作用是接收用户输入的数据。scanf是C语言中的输入函数,可以从键盘获得用户输入,和printf输出功能正好相反。scanf的输入格式是多种多样的,使用时需根据情况选择,最常用的是十进制整数型输入%d。scanf的使用和输入格式 scanf("%d", &c); \/\/输入一个整数并赋值给c。

c语言:编写程序,用getchar函数读入两个字符给c1,c2,然后分别用putchar...
include<stdio.h> int main(){ char c1,c2;getchar(c1);getchar(c2);putchar(c1);printf("%c\\n",c2);return 0;} 第一问,二者皆可!第二问,用printf,格式如下:printf("%d,%d\\n",c1,c2);第三问,不是无条件等价。

C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
include <stdio.h> include <string.h> void input(char st[]);\/\/定义输入函数 void reverse(char st[]);\/\/定义反序函数 int main(){ char s[20];input(s);\/\/调用输入函数 printf("Original string: %s\\n", s);\/\/输出原字符串 reverse(s);\/\/调用反序函数 printf("New string: %s\\...

C语言读入三个整数,升序输出。
你的判断可能有点问题,给你改了一下 include<stdio.h>int main(){ int a,b,c; int min,mid,max; scanf("%d%d%d",&a,&b,&c); if(a>b&&a>c){ if (b > c) max=a,mid=b,min=c; else max=a,mid=c,min=b; } else if(b>a&&b>c){ if...

c语言 求总结字符串输入、输出函数使用的区别。
(4)在使用C语言库函数时,要用预编译命令#include将有关“头文件”包括到源文件中。使用标准输入输出库函数时要用到 “stdio.h”文件,因此源文件开头应有以下预编译命令:#include< stdio.h >或#include ”stdio.h”,stdio是standard input &outupt的意思。(5)考虑到printf和scanf函数使用频繁,...

怎么用C语言从某个硬盘上读入文件
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。2、例程:include...

用c语言读入秒数,编程,换算成几时几分几秒的形式输出
include<stdio.h>int main(){int ss, s, m, h;scanf("%d", &ss);s = ss % 60;m = ss \/ 60 % 60;h = ss \/ 3600;printf("%d:%d:%d", h, m, s);return 0;}

C语言中的Scanf的用法
scanf 函数最主要的用法是:scanf("输入控制符", 输入参数);函数原型:int scanf(const char * restrict format,...);函数 scanf() 是从标准输入流stdin (标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

c语言中用gets读入一个字符串,函数功能类似word的首行缩进2字符,puts...
可以在puts前 先输出两个字符宽度。也可以在gets读入的时候 偏移两个字符宽度读取,前面两个放空格。比如这样:char s[500] = " ";\/\/两个空格。gets(s+2);\/\/偏移两个空格puts(s);\/\/带空格输出。

C语言中对用户输入的读取
因为你输入完第一个字符后按了回车键,而回车键实际上输入了2个字符,第一个字符被scanf用来确认输入结束,第2个字节仍保留在缓冲区内,被第2个scanf读到了,因此b的值实际上是回车输入的第2个字符,是个控制字符,不可见.以后注意了,在scanf("%c",getchar之类输入字符的语句前,要加fflush(stdin);清空...

红岗区15034345069: 如何用C语言读入和输出excel里的数据? -
畅缪颠茄: 简单的方法是通过ODBC来实现: 具体实现 一、 包含Excel文件操作类头文件 #include "CSpreadSheet.h" 二、 新建Excel文件,并写入默认数据 // 新建Excel文件名及路径,TestSheet为内部表名 CSpreadSheet SS("c:\\Test.xls", "...

红岗区15034345069: 怎样用C语言读取excel文件 -
畅缪颠茄: 简单的方法是通过ODBC来实现:具体实现 一、 包含Excel文件操作类头文件#include "CSpreadSheet.h" 二、 新建Excel文件,并写入默认数据// 新建Excel文件名及路径,TestSheet为内部表名 CSpreadSheet SS("c:\\Test.xls", "TestSheet...

红岗区15034345069: 如何用c语言提取excel中的数据 -
畅缪颠茄: 1.方法一:采用OleDB读取EXCEL文件: <br>把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: <br>public DataSet ExcelToDS(string Path) <br><br>{ <br><br>string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data ...

红岗区15034345069: 请教各位怎么用c语言(不是c++哦)创建excel文件并且把结果输入到excel当中去,,急需请教啊 -
畅缪颠茄: 如果数据简单的话,可以使用CSV(逗号分隔值)格式的文件.CSV格式的文件可以用Office Excel 打开.比如有要保存的一张表格是这样的: ----------------表格开始------------------- 编号 姓名 性别 1 A 男 2 B 女 3 C 男 ---------------表格结束--------------...

红岗区15034345069: c语言 excel导入导出 -
畅缪颠茄: C++、VC、VS、.net里都可通过数据库连接、捆绑后再调用,前提是你安装了相应版本的excel服务包(一般安装Office时都会自动装好,只是版本别选错,没有安装的,自己找找吧).用标准C语言很难,因为excel的格式不固定,要检测的东西很多,不建议用标C.

红岗区15034345069: 怎么用c语言打开excel? -
畅缪颠茄: C语言打开Excel没有意义,因为它并不是标准的文本文件,如果你想要数据读取的话,建议选用Unicode格式文件或二进制文件,这样才方便你用C语言进行处理.希望能帮到你.

红岗区15034345069: 如何用C语言来读取EXCEL文件中的数据 -
畅缪颠茄: 自己去读Excel文件我估计几乎是不可能的,可以借助Excel提供的数据库驱动程序以数据库的形式去访问,但用纯C语言穿靴戴帽的代码较多,用C++估计简便点,网上很容易搜到.

红岗区15034345069: 在C语言中,如何将EXCEL或者文档中的数据读入程序中? -
畅缪颠茄: 1 使用的命名空间为:using System.Data.OleDb; 2 连接数据库的字符串为: string myConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\ 目录.xls;Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\""; *.xsl可以认为是数据库了,...

红岗区15034345069: C语言读取excel文件的数据 -
畅缪颠茄: 无解,excel格式不是公开的. 其他的解决方案是将 excel另存为 csv 格式,这是纯文本,然后用读文件的方式读入到数组.

红岗区15034345069: C语言中怎么导入一个表格数据?就是可以通过输入横轴纵轴的数输出出来一个表格对应的值 -
畅缪颠茄: 表格是什么格式文件?如果是excel之类的电子表格,则不适合直接用C处理,如果是文本文件,或者是cvs文件,可以用二维数组存储整个表格,然后根据下标获取对应数值.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网