1. c语言如何读取excel中的数据
介绍 indirect 函数的经典应用场景之一:多个数据表合并汇总,但不做任何计算。
我用的版本是 Excel 2016,其他版本的界面可能略有不同。
案例:
比如下表,每个月的奖金列表有一张单独的 sheet,人员名单都是一样的,现在需要把每个月的奖金列到总表中。本例只调用数据,不做任何计算。
解决方案:
1. 在 B2 中输入以下公式,向下向右拖动公式,就已完成:
=INDIRECT(B$1&"!B"&ROW())
这又是 indirect 函数加和不加 "" 时,调用变量和值的应用场景
B$1 的值是“1月”
& 为联结符
ROW() 返回当前行号
B$1&"!B"&ROW() 的结果就是:1月!B2
! 表示 sheet 名,1月! 就会到”1月“这张 sheet 中读取数据
当下拉的时候,行数会随 row() 函数递增,结果会依次变成 1月!B3,1月!B4...
当往右拉的时候,列号会随 B$1 递增,结果会依次变成 C$1, D$1...即 2月、3月...整个函数值就依次变为 2月!B2、3月!B2...
2. C语言把数据写入excel
把数据写入excel,主要是用write.table函数
用?write.table或者help(write.table)来查看帮助
以下是这个函数的一些参数:
write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ",
eol = "\n", na = "NA", dec = ".", row.names = TRUE,
col.names = TRUE, qmethod = c("escape", "double"),
fileEncoding = "")
里面有个append参数,默认是FALSE
append
logical. Only relevant if file is a character string. If TRUE, the output is appended to the file. If FALSE, any existing file of the name is destroyed.
把这个参数设置成TRUE就可以把数据追加到已有的文件后面了。
3. c语言读取excel表格数据
自己去读Excel文件我估计几乎是不可能的,可以借助Excel提供的数据库驱动程序以数据库的形式去访问,但用纯C语言穿靴戴帽的代码较多,用C++估计简便点,网上很容易搜到。
4. C语言读取Excel
不知这样的效果如何?文件在附件,代码片段在下方:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
LPXLOPER Add(LPXLOPER x1,LPXLOPER x2)
{
if (x1->xltype==xltypeErr)
{
return x1;
}
if (x2->xltype==xltypeErr)
{
return x2;
}
static XLOPER xlRet={0};
double d1=0,d2=0;
if ((x1->xltype&xltypeNum)==xltypeNum)
{
d1=x1->val.num;
}else if ((x1->xltype&xltypeInt)==xltypeInt)
{
d1=x1->val.w;
}else if ((x1->xltype&xltypeSRef)==xltypeSRef)
{
if (GetNumFromCell(x1,d1)==false)
{
xlRet.val.err=xlerrValue;
xlRet.xltype=xltypeErr;
return (LPXLOPER)&xlRet;
}
}else
{
xlRet.val.err=xlerrValue;
xlRet.xltype=xltypeErr;
return (LPXLOPER)&xlRet;
}
if ((x2->xltype&xltypeNum)==xltypeNum)
{
d2=x2->val.num;
}else if ((x2->xltype&xltypeInt)==xltypeInt)
{
d2=x2->val.w;
}else if ((x2->xltype&xltypeSRef)==xltypeSRef)
{
if (GetNumFromCell(x2,d2)==false)
{
xlRet.val.err=xlerrValue;
xlRet.xltype=xltypeErr;
return (LPXLOPER)&xlRet;
}
}else
{
xlRet.val.err=xlerrValue;
xlRet.xltype=xltypeErr;
return (LPXLOPER)&xlRet;
}
xlRet.xltype=xltypeNum;
xlRet.val.num=d1+d2;
return (LPXLOPER)&xlRet;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
bool GetNumFromCell(LPXLOPER lpXloper,double & dValue)
{
XLOPER x_Tmp={0};
if ((lpXloper->xltype & xltypeSRef)==xltypeSRef)
{
if (xlretUncalced == Excel(xlCoerce, &x_Tmp, 2, lpXloper, TempInt(xltypeNum)))
{
return false;
}
if (x_Tmp.xltype==xltypeErr)
{
return false;
}
dValue=x_Tmp.val.num;
}else
{
return false;
}
return true;
}
很抱歉,回答者上传的附件已失效
5. c语言如何读取excel中的数据类型
EXCEL如何分类汇总计算
1.
打开工作表格,选中编辑单元格,点击【插入函数】按钮。
弹出【插入函数】对话框,选中“SUMIF”,单击【确定】按钮
在【函数参数】对话框中输入“$B$2:$B$10”、“$B17”、“C$2:C$10”。
返回到工作表中,选中单元格就出现了分类汇总数据!这就是分类计算的方法
6. 用c语言读取excel数据
1、不一样啊,office是办公,考得就是ppt,word,excel,计算机知识。而c语言是指编程。office是从几年前新增的,题少,考的时候很容易抽到新题。而c语言考了很久了,题量很多,基本上都是原题和类似题,考过的几率更大。但是对于非计算机专业的office更实用。2、计算机二级 科目:语言程序设计类(C、C++、Java、Visual Basic、Web)、数据库程序设计类(Visual FoxPro、Access、MySQL)、办公软件高级应用(MS Office 高级应用)共九个科目 形式:完全采取上机考试形式。各科上机考试时间均为 120 分钟, 满分 100 分。 获证条件:总分不低于 60 分。 级别:程序设计、办公软件高级应用级。考核内容包括计算机语言与基础程序设计能力,要求参试者掌握一门计算机语言,可选类别有高级语言程序设计类、数据库程序设计类、Web程序设计类等;二级还包括办公软件高级应用能力,要求参试者具有计算机应用知识及 MS Office 办公软件的高级应用能力,能够在实际办公环境中开展具体应用。
7. c++从excel中读取数据
C#可以添加excel参照,添加excelapp空间,类似于C#访问xml文件。
- 相关评论
- 我要评论
-