用C语言将excel某一列输出到TXT

完全是新手c++也可以,求程序... 完全是新手
c++也可以,求程序
展开
 我来答
青丝青y亦青城
2016-04-30
知道答主
回答量:7
采纳率:0%
帮助的人:7495
展开全部

C语言有文件操作函数

如fopen之类,然后就读取函数就可以了

但应该怎么读,必须要看你的文件内容是什么样子的,才能确定用什么读取命令,

一般的用fscanf就可以

由于行数未知,所以解决方法可以有两个,

1.是定义足够大的数组,比如你最多有100行,那么就定义一个100元素的数组,这样程序简单,但不灵活.

2.是用链表,但编程要复杂些

#include <stdio.h>
#define N 50
void main()
{
 int a[N],b[N],c[N],d[N];
 int i=0,n;
 FILE *f;
 if((f=fopen("a16.txt","r"))==NULL) 
 {
  printf("无法打开\n");return;
 }
 while(!feof(f))
 { fscanf(f,"%d%d%d%d",&a[i],&b[i],&c[i],&d[i]);
  i++;
 }
 fclose(f);
 for(n=i,i=0;i<n;i++)
  printf("%5d %5d %5d %5d\n",a[i],b[i],c[i],d[i]);

}

vsysy1
推荐于2017-10-03 · 超过14用户采纳过TA的回答
知道答主
回答量:20
采纳率:0%
帮助的人:16.6万
展开全部
问题看似明确,但其实不是问得很明确,只能说你问的是步骤,而不是细节。就如你问“怎么开个包子店?”一样,问题很大,如果你问的是“包子皮弄多大?”或"一个包子该卖多少钱?",这就具体了,那就问的是细节。

因为你的问题是难以给你细化的回答,只能给你说步骤。

1、每种文件格式都是有自己的存储方式的,如第10个字节存什么 第几字节个到第几个存的是什么都是有其规则的,而excel的信息量是非常大的(文字、字体、颜色、插图、列表、列表格式....等),所以excel的文件存储方式是非常复杂的,而且其中还有可能有些信息还要经过压缩算法,所以 要自己去写代码解析某一列或某一格的文字是很难,一般不会这么做。
2、那么不用自己去解析怎么办呢?用开源库,只有用开源代码才能方便解决问题(一般也都如此)。
3、用什么开源库?到网上搜一下,可以用libxls,免费开源。可以下载。
4、然后编译通过这个库
5、然后自己写代码调用这个库提供的读取excel内容的函数,得到信息,写到文本txt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lowkeymimi
推荐于2017-06-14
知道答主
回答量:12
采纳率:100%
帮助的人:1.3万
展开全部
我之前也遇到这样的问题,觉得这个答案挺好的。

C语言有文件操作函数
如fopen之类,然后就读取函数就可以了
但应该怎么读,必须要看你的文件内容是什么样子的,才能确定用什么读取命令,
一般的用fscanf就可以
由于行数未知,所以解决方法可以有两个,
1.是定义足够大的数组,比如你最多有100行,那么就定义一个100元素的数组,这样程序简单,但不灵活.
2.是用链表,但编程要复杂些
#include <stdio.h>
#define N 50
void main()
{
int a[N],b[N],c[N],d[N];
int i=0,n;
FILE *f;
if((f=fopen("a16.txt","r"))==NULL)
{
printf("无法打开\n");return;
}
while(!feof(f))
{ fscanf(f,"%d%d%d%d",&a[i],&b[i],&c[i],&d[i]);
i++;
}
fclose(f);
for(n=i,i=0;i<n;i++)
printf("%5d %5d %5d %5d\n",a[i],b[i],c[i],d[i]);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
518号僵尸
2016-06-07 · TA获得超过103个赞
知道答主
回答量:20
采纳率:100%
帮助的人:7.3万
展开全部
#include "CSpreadSheet.h" //包含Excel文件操作类头文件
CSpreadSheet SS("c:\\Test.xls", "TestSheet"); // 新建Excel文件名及路径,TestSheet为内部表名
CStringArray sampleArray, testRow;
SS.BeginTransaction();
// 加入标题
sampleArray.RemoveAll();
sampleArray.Add("姓名");
sampleArray.Add("年龄");
SS.AddHeaders(sampleArray);
// 加入数据
CString strName[] = {"张三","李四","王五","陈六","赵七"};
CString strAge[] = {"55","66","77","88","99"};
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();
CSpreadSheet SS("c:\\Test.xls", "TestSheet");  //读取Excel文件数据
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);
}
#include "CSpreadSheet.h" //包含Excel文件操作类头文件
CSpreadSheet SS("c:\\Test.xls", "TestSheet"); // 新建Excel文件名及路径,TestSheet为内部表名
CStringArray sampleArray, testRow;
SS.BeginTransaction();
// 加入标题
sampleArray.RemoveAll();
sampleArray.Add("姓名");
sampleArray.Add("年龄");
SS.AddHeaders(sampleArray);
// 加入数据
CString strName[] = {"张三","李四","王五","陈六","赵七"};
CString strAge[] = {"55","66","77","88","99"};
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();
CSpreadSheet SS("c:\\Test.xls", "TestSheet");  //读取Excel文件数据
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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱的轩言360
2017-04-22 · TA获得超过194个赞
知道小有建树答主
回答量:589
采纳率:100%
帮助的人:213万
展开全部
操作编码如下:

int strlen(char *p)
{
int i=0;
while(*p++)i++;
return i;
}

#include <stdio.h>
#include <string.h>

void main()
{
char x[3]={0};
x[0]='a';
x[1]='b';
x[2]='c';
int len=strlen(x);
printf("%c %d \r\n",x[6],len);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式