C语言如何 *** 作excel文件?

C语言如何 *** 作excel文件?,第1张

1.写 *** 作 第一步:单纯C语言写入Excel文件只能是 *.csv的后缀文件(是和txt一样,以二进制文本形式存储,它是以都逗号分隔符做个单元格内容的划分, .xls存储比较复杂, .csv文件可以可以段者通过...

2.读 *** 袭耐作 读取文件 对于读取拍燃春Excel文件的 *** 作,使用了文件随机定位函数fseek(),它的一般调用格式如下: fseek...

3.最新补充 2018.08.28 由于经常有朋友告诉我运行结果是0 ,并将他们的工程发到我...

一、读取excel

这里介绍一个不错的包xlrs,可以工作在桥昌任何平台。这也就意味着你可以在Linux下读取Excel文件。

首先,打开workbook;

代码如下:

import xlrd

wb = xlrd.open_workbook('myworkbook.xls')

检查表单名字:

代码如下:

wb.sheet_names()

得到第一张表单,两种方式:索引和名字

代码如下:

sh = wb.sheet_by_index(0)

sh = wb.sheet_by_name(u'Sheet1')

递归打印出每行的信息:

代码如下:

for rownum in range(sh.nrows):

print sh.row_values(rownum)

如果只想返回第一列数据:

代码敏枝扒如下:

first_column = sh.col_values(0)

通过索引读取数据:

cell_A1 = sh.cell(0,0).value

cell_C4 = sh.cell(rowx=3,colx=2).value

注意:这里的索引都是从0开始的。

二、写excel

这里介绍一个不错的包xlwt,可以工作在任何平台。这也就意味着你可以在Linux下保存Excel文件。

基本部分

在写入Excel表格之前,你必须初始化workbook对象,然后添加一个workbook对象。比如:

代码如下:

import xlwt

wbk = xlwt.Workbook()

sheet = wbk.add_sheet('sheet 1')

这样表单就被创建了,写入数据也很简单:

代码如下:

# indexing is zero based, row then column

sheet.write(0,1,'test text')

之后搭胡,就可以保存文件(这里不需要想打开文件一样需要close文件):

代码如下:

wbk.save('test.xls')

上一个教程里面讲到了写函数和调用函数的问题。以前也说过,要尽量用搭积木的心态来写实验程序,也就是说我们尽量不关心某个具体功能的实现过程,而使用现有的函数拼搭完成程序。因此,调用函数的方法需要详细介绍一下。这里用读写 excel 文件的例子来介绍一下函数调用的具体方法。

心理学实验数据多采用 excel 表格形式保存或处理,因此,读或写 excel 文件是一个很重要的需求。Matlab 提供了两个函数分别用于读和写 excel 文件。

Matlab 提供了 xlsread 函数用于读 excel 文件。先 help 一下看看,这个函数是怎么用的。help 的结果就不贴图了,这里简单总结下基本用法宴轿:

函数调用形式是这样的: [ num, txt, raw ] = xlsread ( FILE, SHEET, RANGE )

xlsread 函数可以返回三个值,接受的参数也有多个, 比较常用的是上述三个参数。

简单解释下函数的返回值。一般来说,一个 excel 文件是包括两种类型的数据,一种是数字,另一种是文本。

xlsread 函数可以将这两种类型的数据分离,分别保存到 num 和 txt 变量中。它还可以将数字与文本放在一起,保存到 raw 变量中。

在调用函数的时候需要传递给函数三个参数,分别是文件名、工作表名以及表中的单元格范围。文件名是必须输入的参数,但是工作表名及单元格范围是可以不指定的,默认是第一个工作表的全部数据。

文件名参数可以是完整的路径,也可以只输入文件名野颤(要求该文件在当前工作目录下)。下面给个例子。

我在桌面上新建了一个名为 " xlsread.xlsx " 的 excel 文件,内容截图如下:

变量 num 中的结果比较容易理解,它就是一个矩阵。txt 和 raw 的结果不同于以前介绍的内容。这种用大括号括起来的矩阵,称为元胞矩阵。具体的使用方法与规则,请大家自行搜索,以后涉及到了会再介绍。

假如,我们只需要文本内容,不需要其他的。前面也说过函数调用要原样调用。可以用 ~ 代替那些我们不想得到的返回值。因此,只取文本内容的函数调用如下:

当然,函数调用的规则还有更多内容。比如,只需要获得第一个返回值的时候,其他返回值可以不写。更多的具体内晌脊肆容请大家自行搜索,不再详细介绍。大家还可以试试,如果不提供接受返回值的变量,会输出什么结果?比如,我在命令行中输入 xlsread ('xlsread.xlsx') .

Matlab 内置一个名为 xlswrite 的函数用于写 excel 文件。经过 help 以后,可以了解它的基本用法:

status = xlswrite ( FILE, ARRAY, SHEET, RANGE )

返回值 status 只有两个值,如果写入成功则返回逻辑值 1, 否则返回逻辑值 0。

输入的参数有四个,分别为文件名,要写入的矩阵,工作表以及单元格范围。

以 xlsread.xlsx 文件中的内容为例,用 Matlab 将它写入到 xlswrite.xlsx 文件中。

先写入表头:

再写入每个标题下面的数据:

注意,这里的数据写入范围只给出了从单元格A2开始,没有给出完整的范围,这也是可以的。更详细的用法,请参考 help 文档。

写到这里,我发现有关元胞矩阵的问题,还需要单独开一个帖子详细介绍。下次就更元胞矩阵的用法。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12468498.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存