主页 | excel电子表格 | Word办公 | PPT教学 | Wps文档处理 |

read_办公软件excel读取csv时编码错误

    1. xlsread读取csv

    excel中后缀为csv和xls,二者区别如下:  1、xls 文件就是Microsoft excel电子表格的文件格式。  2、csv是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中。 此文件,一行即为数据表的一行。生成数据表字段用半角逗号隔开。  csv是文本文件,用记事本就能打开,XLS是二进制的文件只有用EXCEL才能打  csv文件是以逗号为分隔符号,将各字段列分离出的一种ASCII文件。  csv(*.csv) 文件格式只能保存活动工作表中的单元格所显示的文本和数值。工作表中所有的数据行和字符都将保存。  数据列以逗号分隔,每一行数据都以回车符结束。如果单元格中包含逗号,则该单元格中的内容以双引号引起。

    2. xlsread读取时间格式

    1.   读取sheet1中的所有数据

    我们以03版excel为例,假设excel中数据为

    默认这些文本以及数字都放在sheet1中,我们将此excel选入当前工作目录(必要步骤),然后再MATLAB主窗口中输入下面命令:[NUM,TXT,RAW]=xlsread('example'),其中example是你的excel名,这里我所有的数据都在example.xls中。输入以上命令,回车

    NUM返回的是excel中的数据,TXT输出的是文本内容,RAW输出的是未处理数据,这里因为文本占用的矩阵一共是8行6列,所以就输出了如上内容。一般情况下,我们读取的都是excel中的数据,所以可以直接用[NUM]=xlsread('example'),只输出数据矩阵便可。

    2.   读取指定sheet中的数据

    假如我们想读取第二个sheet中的数据,这里请注意:matlab读取excel中的数据是按照sheet在excel中的排放顺序来的,sheet3现在排在第二位,我们输入命令[NUM]=xlsread('example',2),回车

    结果如下:

    3.   读取指定单元格中的数据

    以sheet2中的数据为例

    假设我们读取A3-D7之间的数据,那么我们输入命令[NUM]=xlsread('example',2,'A3:D7'),回车,结果如下:

    3. xlsread读取一列数据

    一、save与load函数保存和加载程序数据

    基本格式为:

    save('FILENAME', 'VARIABLES')

    load('FILENAME', 'VARIABLES')

    例如,save ('datas.mat','data','x','y','z'); 表示将内存变量data, x, y, z 保存到当前路径下的datas.mat文件,其它程序若要载入这几个变量的数据,只需前面路径下执行load datas;即可。

    二、txt文件的导入导出

    1. 导入格式一致的数据

    例1 现有txt文件如下:

    代码:

    x1=load('data1.txt'); %注意设置当前路径为文件所在路径

    x2=load('data2.txt');

    2. 导入有固定分隔符的数据

    dlmread('FILENAME', '分隔符', '读取范围')

    例2读取txt文件如下(需要跳过前2行的非数据行,或列数不同):

    代码:

    x3=dlmread('data3.txt', ',', 2,0) ; %设定读取的初始位置:2行0列之后的数据

    x4=dlmread('data4.txt'); %列数不足用0不齐,load函数读取将报错

    3. 将矩阵数据写入指定分隔符的ASCII格式文件

    dlmwrite(‘文件名’, ‘数据’, ‘分隔符’, ‘起始行’, ‘起始列’)

    dlmwrite(‘文件名’, ‘数据’, '-append')

    '-append'表示将矩阵数据写到文本末尾,若不指定将覆盖原文本数据。

    4. 导入带表头的txt或excel数据

    importdata(‘文件名’, ‘分隔符’, ‘n’);

    将数据存入“结构体”,其中,n表示n行表头;也可以用来读入图片:

    x=importdata('tupian.jpg'); image(x);

    例3 读入如下的txt文件:

    代码:

    x5=importdata('data5.txt',' ',1); %空格分隔, 第1行是表头

    x5.data %数据

    x5.textdata %表头变量

    5. 导入混合格式文本

    textscan(fid, 'format', N, 'param', value);

    其中,fid为文件句柄;format为读取格式;N表示用该格式读取N次数据;'param', value(可选项)指定分隔符和值对。

    注意:使用textscan之前,必须先用fopen打开要读入的文件;函数textread用法类似。

    例4 混合格式数据的txt文件如下:

    代码:

    fid=fopen('data6.txt','r'); %打开文件句柄

    C=textscan(fid, '%s%s%f32%d8%u%f%f%s%f'); %按格式读入元胞数组C

    fclose(fid); %关闭文件句柄

    C{1}

    C{9}

    [names,types,y,answer]=textread('data7.txt','%9c %6s %*f %2d %3s', 1) %读入固定格式的文件的第一行,忽略其中的浮点值

    运行结果:C{1} = 'Sally' 'Joe' 'Bill'

    C{9} = 5.1000 + 3.0000i 2.2000 - 0.5000i 3.1000 + 0.1000i

    names = Sally Lev

    types = 'el1'

    y = 45

    answer = 'Yes'

    三、csv文件导入与导出

    csv文件是逗号分隔的txt文件,使用csvread()函数,有3种格式:

    csvread('filename', row, col, range)

    其中,第一个参数指定文件名;

    row和col指定开始读取位置的行号和列号。注意是从0开始计数,即row=0, col=0表示从文件中第一个数(1, 1)开始读;

    range指定读取的范围,range=[R1 C1 R2 C2],表示读取区域的左上角位置为(R1+1, C1+1),读取区域的右下角位置为(R2-1, C2-1),且要求row, col等于R1, C1.

    注意:csv文件中的空项,读到矩阵中时,会初始化为0.

    四、 Excel文件的导入与导出

    1. 导入Excel数据文件

    [num, txt, raw] = xlsread('文件名.xls','工作表', '数据范围')

    例5 现有data1.xlsx文件(导入Sheet1的A1至H4数据):

    代码:

    [num,txt,raw]=xlsread('data1.xlsx','Sheet1','A1:H4')

    %数据返回num;文本返回txt;不处理直接作为元胞返回raw

    运行结果:

    num =

    1 60101 6010101 NaN 0 63 63

    2 60101 6010102 NaN 0 73 73

    3 60101 6010103 NaN 0 0 0

    txt =

    '序号' '班名' '学号' '姓名' '平时成绩' '期末成绩' '总成绩' '备注'

    '' '' '' '陈亮' '' '' '' ''

    '' '' '' '李旭' '' '' '' ''

    '' '' '' '刘鹏飞' '' '' '' '缺考'

    raw =

    '序号' '班名' '学号' '姓名' '平时成绩' '期末成绩' '总成绩' '备注'

    [ 1] [60101] [6010101] '陈亮' [ 0] [ 63] [ 63] [ NaN]

    [ 2] [60101] [6010102] '李旭' [ 0] [ 73] [ 73] [ NaN]

    [ 3] [60101] [6010103] '刘鹏飞' [ 0] [ 0] [ 0] '缺考'

    2. 将数据导出到Excel文件

    status = xlswrite(‘filename.xls’, ‘数据’, ‘工作表’, ‘指定区域’)

    成功返回1,失败返回0.

    例6 将矩阵或元胞数组的数据写成xls文件

    代码:

    A=[12.7 5.02 -98 12; 63.9 0 -0.2 56];

    xlswrite('testdata.xls', A)

    d={'Time', 'Temp'; 12 98; 13 99; 14 97};

    s=xlswrite('tempdata.xls', d, 'Temperatures', 'E1')

    %将数据d写入文件tempdata.xls, Temperatures表,E1起始

    例7 读取数据、处理日期数据,根据日期绘制开盘价变化趋势图形。ExpData.xlsx文件如下(部分):

    代码:

    [num,txt]=xlsread('ExpData.xlsx');

    %读取excel表格中的数据,数值存入num,文本存入txt

    date=txt(2:end,1); %取出日期数据单独处理

    t=datenum(date); %将日期转化为数值(方便绘图使用)

    date1=datestr(t); %将数值转化为日期

    h=figure %生成空的图形窗口句柄

    set(h,'color','w'); %将图的背景颜色设为白色

    plot(t,num(:,1)); %以日期为横坐标,开盘价为纵坐标,绘制图形

    %plot(t,num(:,1),'*'); %绘制散点图

    datetick('x',23); %将x轴标注变成日期格式:mm/dd/yyyy

    xlabel('日期');

    ylabel('开盘价');

    运行结果:

    4. xlsread读取表格不完整

    以下扩展包可以读取xlsx文件:

    CRAN - Package xlsx

    awalker89/openxlsx · GitHub

    CRAN - Package RODBC

    通过 odbcConnectExcel2007 连接到xlsx表格,然后通过SQL选择表格中的数据

    hadley/readxl · GitHub

    最新的一个扩展包,可以跨平台、无依赖地读取xls, xlsx中的表格数据。

    5. xlsread读取字符

    1、matlab读取Excel文件的命令为xlsread,xlsread的调用格式为xlsread('文件路径\文件名称'),此处以文件shuju.xlsx为例,文件路径和文件名称如下图所示。

    2、在matlab命令行输入命令A=xlsread('C:\Users\50123\Desktop\shuju.xlsx'),即可把Excel中的数据保存在A中。输出结果如下图所示,和Excel中的数据一致。

    3、读取指定的工作表:xlsread命令未指定工作表时,默认读取Sheet1中的数据,A=xlsread('文件路径\文件名称','工作表名称'),即可读取指定的工作表。

    4、使用A=xlsread('C:\Users\50123\Desktop\shuju.xlsx','Sheet2')即可读取Sheet2工作表中的数据,结果如下图所示。

    5、读取指定工作表的指定行列:调用格式为xlsread('文件路径\文件名称','工作表','行列范围'),行列范围以a1:c2为例,表示以a1为起始,c2为终点的矩阵。输入命令及输出结果如下图所示。

    6. xlsread读取csv文件

    一、save与load函数保存和加载程序数据

    基本格式为:

    save('FILENAME', 'VARIABLES')

    load('FILENAME', 'VARIABLES')

    例如,save ('datas.mat','data','x','y','z'); 表示将内存变量data, x, y, z 保存到当前路径下的datas.mat文件,其它程序若要载入这几个变量的数据,只需前面路径下执行load datas;即可。

    二、txt文件的导入导出

    1. 导入格式一致的数据

    例1 现有txt文件如下:

    代码:

    x1=load('data1.txt'); %注意设置当前路径为文件所在路径

    x2=load('data2.txt');

    2. 导入有固定分隔符的数据

    dlmread('FILENAME', '分隔符', '读取范围')

    例2读取txt文件如下(需要跳过前2行的非数据行,或列数不同):

    代码:

    x3=dlmread('data3.txt', ',', 2,0) ; %设定读取的初始位置:2行0列之后的数据

    x4=dlmread('data4.txt'); %列数不足用0不齐,load函数读取将报错

    3. 将矩阵数据写入指定分隔符的ASCII格式文件

    dlmwrite(‘文件名’, ‘数据’, ‘分隔符’, ‘起始行’, ‘起始列’)

    dlmwrite(‘文件名’, ‘数据’, '-append')

    '-append'表示将矩阵数据写到文本末尾,若不指定将覆盖原文本数据。

    4. 导入带表头的txt或excel数据

    importdata(‘文件名’, ‘分隔符’, ‘n’);

    将数据存入“结构体”,其中,n表示n行表头;也可以用来读入图片:

    x=importdata('tupian.jpg'); image(x);

    例3 读入如下的txt文件:

    代码:

    x5=importdata('data5.txt',' ',1); %空格分隔, 第1行是表头

    x5.data %数据

    x5.textdata %表头变量

    5. 导入混合格式文本

    textscan(fid, 'format', N, 'param', value);

    其中,fid为文件句柄;format为读取格式;N表示用该格式读取N次数据;'param', value(可选项)指定分隔符和值对。

    注意:使用textscan之前,必须先用fopen打开要读入的文件;函数textread用法类似。

    例4 混合格式数据的txt文件如下:

    代码:

    fid=fopen('data6.txt','r'); %打开文件句柄

    C=textscan(fid, '%s%s%f32%d8%u%f%f%s%f'); %按格式读入元胞数组C

    fclose(fid); %关闭文件句柄

    C{1}

    C{9}

    [names,types,y,answer]=textread('data7.txt','%9c %6s %*f %2d %3s', 1) %读入固定格式的文件的第一行,忽略其中的浮点值

    运行结果:C{1} = 'Sally' 'Joe' 'Bill'

    C{9} = 5.1000 + 3.0000i 2.2000 - 0.5000i 3.1000 + 0.1000i

    names = Sally Lev

    types = 'el1'

    y = 45

    answer = 'Yes'

    三、csv文件导入与导出

    csv文件是逗号分隔的txt文件,使用csvread()函数,有3种格式:

    csvread('filename', row, col, range)

    其中,第一个参数指定文件名;

    row和col指定开始读取位置的行号和列号。注意是从0开始计数,即row=0, col=0表示从文件中第一个数(1, 1)开始读;

    range指定读取的范围,range=[R1 C1 R2 C2],表示读取区域的左上角位置为(R1+1, C1+1),读取区域的右下角位置为(R2-1, C2-1),且要求row, col等于R1, C1.

    注意:csv文件中的空项,读到矩阵中时,会初始化为0.

    四、 Excel文件的导入与导出

    1. 导入Excel数据文件

    [num, txt, raw] = xlsread('文件名.xls','工作表', '数据范围')

    例5 现有data1.xlsx文件(导入Sheet1的A1至H4数据):

    代码:

    [num,txt,raw]=xlsread('data1.xlsx','Sheet1','A1:H4')

    %数据返回num;文本返回txt;不处理直接作为元胞返回raw

    运行结果:

    num =

    1 60101 6010101 NaN 0 63 63

    2 60101 6010102 NaN 0 73 73

    3 60101 6010103 NaN 0 0 0

    txt =

    '序号' '班名' '学号' '姓名' '平时成绩' '期末成绩' '总成绩' '备注'

    '' '' '' '陈亮' '' '' '' ''

    '' '' '' '李旭' '' '' '' ''

    '' '' '' '刘鹏飞' '' '' '' '缺考'

    raw =

    '序号' '班名' '学号' '姓名' '平时成绩' '期末成绩' '总成绩' '备注'

    [ 1] [60101] [6010101] '陈亮' [ 0] [ 63] [ 63] [ NaN]

    [ 2] [60101] [6010102] '李旭' [ 0] [ 73] [ 73] [ NaN]

    [ 3] [60101] [6010103] '刘鹏飞' [ 0] [ 0] [ 0] '缺考'

    2. 将数据导出到Excel文件

    status = xlswrite(‘filename.xls’, ‘数据’, ‘工作表’, ‘指定区域’)

    成功返回1,失败返回0.

    例6 将矩阵或元胞数组的数据写成xls文件

    代码:

    A=[12.7 5.02 -98 12; 63.9 0 -0.2 56];

    xlswrite('testdata.xls', A)

    d={'Time', 'Temp'; 12 98; 13 99; 14 97};

    s=xlswrite('tempdata.xls', d, 'Temperatures', 'E1')

    %将数据d写入文件tempdata.xls, Temperatures表,E1起始

    例7 读取数据、处理日期数据,根据日期绘制开盘价变化趋势图形。ExpData.xlsx文件如下(部分):

    代码:

    [num,txt]=xlsread('ExpData.xlsx');

    %读取excel表格中的数据,数值存入num,文本存入txt

    date=txt(2:end,1); %取出日期数据单独处理

    t=datenum(date); %将日期转化为数值(方便绘图使用)

    date1=datestr(t); %将数值转化为日期

    h=figure %生成空的图形窗口句柄

    set(h,'color','w'); %将图的背景颜色设为白色

    plot(t,num(:,1)); %以日期为横坐标,开盘价为纵坐标,绘制图形

    %plot(t,num(:,1),'*'); %绘制散点图

    datetick('x',23); %将x轴标注变成日期格式:mm/dd/yyyy

    xlabel('日期');

    ylabel('开盘价');

    运行结果:

    7. xlsread读取的数据没顺序

    i = 1次数=0Do按过的鼠标键 = GetLastClick()If 按过的鼠标键 = 32769 Then Call Plugin.Office.OpenXls("C:\测试.xls") 名字 = Plugin.Office.ReadXls(1, i, 1) Call Plugin.Office.CloseXls() SayString "名字" If 次数

    8. xlsread读取为空

    help xlsread函数,这个函数可以读取xlsx文件的任意标签页,任意行列数据 MATLAB可以用ceil/ground函数对小数取近似

    9. xlsread读取字符串

    可以的,使用'A1:D50'即可

    指定xlRange,使用语法'C1:C2',其中C1和C2是定义要读取的区域的两个相对的角。 例如,'D2:H4'表示工作表上的两个角落D2和H4之间的3乘5的矩形区域。 xlRange输入不区分大小写,并使用Excel A1参考样式(请参阅Excel帮助)。

    在基本模式下读取XLS文件时,不支持范围选择。

    如果不指定工作表,则即使对于单个单元格(如'D2:D2'),xlRange也必须包含拐角和冒号字符。 否则,xlsread会将输入解释为工作表名称(如‘sales’或‘D2’)。

    PS:注意!读excel的函数是xlsread,xlswrite是写excel的函数!

    10. xlsread读取不了

    读取sheet1中的所有数据我们以03版excel为例,假设excel中数据为默认这些文本以及数字都放在sheet1中,我们将此excel选入当前工作目录(必要步骤),然后再MATLAB主窗口中输入下面命令:[NUM,TXT,RAW]=xlsread('example'),其中example是你的excel名,这里我所有的数据都在example.xls中。

    输入以上命令,回车NUM返回的是excel中的数据,TXT输出的是文本内容,RAW输出的是未处理数据,这里因为文本占用的矩阵一共是8行6列,所以就输出了如上内容。

    一般情况下,我们读取的都是excel中的数据,所以可以直接用[NUM]=xlsread('example'),只输出数据矩阵便可。

    读取指定sheet中的数据假如我们想读取第二个sheet中的数据,这里请注意:matlab读取excel中的数据是按照sheet在excel中的排放顺序来的,sheet3现在排在第二位,我们输入命令[NUM]=xlsread('example',2),回车读取指定单元格中的数据以sheet2中的数据为例假设我们读取A3-D7之间的数据,那么我们输入命令[NUM]=xlsread('example',2,'A3:D7'),回车

  • cad根据办公软件excel内容批量替换
  • 转办公软件excel在线转换