matlab を使用して Excel にデータをインポートまたは読み取ります (COM メソッドおよび xlswrite、xlsread メソッド)


2020年12月に更新され、チャート図の描画が追加されました。matlab を使用して、Excel でヒストグラム、散布図、その他のグラフを描画することができます。

2021 年 4 月のアップデートで、x が 1352 より大きい場合に x2column 関数が正しく変換されないバグを修正

バージョンが長すぎて読めない 結論: xlswrite と xlsread はシンプルなメソッドとシンプルな関数を備えています。COMメソッドは複雑で機能も複雑です。

ナンセンスはもう十分なので、この記事では前書きと序文は書きません。

1 Matlabには関数が付属しています

1.1 Excel への書き込み

Matlab には、Excel データを書き込むために使用できる独自の関数 xlswrite があります。
形式は次のとおりです。

xlswrite(filename,A,sheet,xlRange)

最初のファイル名は、「WriteIt.xlsx」などの Excel の名前です。A は
書き込まれるデータ、できればセル形式です。
シートは書き込まれるテーブルです。1 は最初のテーブルを表します。そうでない場合は、新しいものを作成します。「sheet1」などの名前に置き換えることもできます。xlRange は
Excel のデータ入力範囲で、形式は「A1:F6」です。これは、A1 から F6 までの範囲を選択してデータを入力することを意味します。

新バージョン2019ではxlswriteの使用は非推奨となり、新しい関数writecellに置き換えられましたが、
基本的な使い方はxlswriteと同様です。

1.2 Excelの読み込み

Matlab には Excel 関数を読み取るための関数 xlsread が付属しています。形式は次のとおりです。

[Read_num,Read_txt,Read_all] =xlsread('WriteIt.xlsx');

出力は 3 つあり、出力番号 (マット形式)、出力テキスト (セル形式)、合計出力 (セル形式) を表します。

2019 バージョン以降、matlab は xlsread を推奨しなくなり、関数 readcell に置き換えられます。使用方法は同様です。

1.3 例

コードは以下のように表示されます:

clear
clc

%利用matlab自带的函数写入excel
Size=3;
A=magic(Size);
data=cell(4,3);
data(2:4,:)=num2cell(A);
data(1,1:3)={'a','b','c'};
range=['A1:',char(abs('A')-1+Size),num2str(Size+1)];
%2019版本
% writecell(data,'WriteIt.xlsx','Sheet',1,'Range',range,'AutoFitWidth',true);
%2006版本
xlswrite('WriteIt.xlsx',data,1,range);

%利用matlab自带的函数读取excel数据
%2019版本
% Read_data=readcell('WriteIt.xlsx');
%2006版本
[Read_num,Read_txt,Read_all] =xlsread('WriteIt.xlsx');

実際の出力の Excel 形式は次のとおりです。
ここに画像の説明を挿入

2 COMメソッド

この章の参考文献:
実際の Matlab ファイルとデータ インターフェイス テクノロジ (Jiang Zelin、Liu Wei)
Microsoft 関連のオンライン ドキュメント ( https://docs.microsoft.com/zh-cn/office/vba/api/excel.workbook )

COM メソッドは、Excel が提供する COM インターフェイスを使用して、Excel の一部の関数を Matlab で呼び出すことです。

デバッグ処理中にエラーが発生した場合は、プログラムを正常に再実行できるように、タスク マネージャーのプロセス列で EXCEL.EXE プロセスを手動で終了する必要があります。正しくデバッグされている場合は必要ありません。
ここに画像の説明を挿入

2.1 ファイルの読み取りと書き込み

ここに画像の説明を挿入
上の図は、「experiment.xlsx」という名前のデモ ドキュメントです。このファイルには、「Rocket Launch」と「Appendix」という 2 つのシートが含まれています。

上の図の左側は「Rocket Launch」シートで、数値形式の設定、塗りつぶしの色の設定、フォントの設定、配置の設定、テキストの色の設定、テキストのサイズの設定、テキストの太字と斜体の設定が含まれています。

上図の右側は数式の設定が記載された「付録」シートで、B列の数式はB2=100-($A2)^2となっており、埋め込まれています。

この記事の現在のプログラムには、結合されたセル、枠線情報、グラフの描画、条件付き書式設定、フィルタリングなどの情報は含まれていませんが、これらに限定されません。

次のプログラムは、「experiment.xlsx」ファイル内のすべての関連情報を読み取り、読み取ったすべての情報を書き込むための Excel ファイルを作成する例を示しています。

%读取格式,写成函数形式

%复制表格
filename='实验.xlsx';
Excel_Data=Read_Excel(filename);
filename2='实验2.xlsx';
Write_Excel(filename2,Excel_Data);



%后面是相关函数
function Write_Excel(filename,Excel_Data)
% file=fullfile(pwd, file);%加上全路径
exl=actxserver('excel.application');
exlWkbk=exl.WorkBooks.Add();
E_WS=exlWkbk.Worksheets;
%创建2个表格
sheet_N=size(Excel_Data,1);
for k=1:sheet_N
    E_WS.Item(k).Select;%选择第k个表格
    E_WS_k=E_WS.Item(k);
    E_WS_k.Name=Excel_Data{k,1};%建立名字
    if sheet_N>1 && k<sheet_N
        E_WS.Item(1).Select;%选择第一个表格
        E_WS.Add([], E_WS.Item(E_WS.Count));%在后面添加一个新sheet
    end
    E_WS.Item(k).Select;%重新选择回第k个表格
    exlSheet1=exl.Activesheet;%选中当前工作表
    Data_K=Excel_Data{k,2};%获取当前工作表数据
    num_rows=size(Data_K,1);%行数
    num_columns=size(Data_K,2);%列数
    for x=1:num_columns
        X=x2columns(x);%把列转换为Excel的索引格式
        for y=1:num_rows
            dat_range=[X,num2str(y),':',X,num2str(y)];
            %选中要写入的范围
            rngObj=exlSheet1.Range(dat_range);
            %选中到Font上
            Data_Font=rngObj.Font;
            %写入字体颜色
            Color10=Data_K(y,x).TextColor;
            Color16=[dec2hex(Color10(1),2),dec2hex(Color10(2),2),dec2hex(Color10(3),2)];%由三组16进制数组成,分别为BGR对应的16进制
            Data_Font.Color=hex2dec(Color16);
            %改变字体格式
            Data_Font.Name=Data_K(y,x).TextStyle;%字体
            Data_Font.Size=Data_K(y,x).TextSize;%文字大小
            Data_Font.Bold=Data_K(y,x).IfBold;%是否加粗
            Data_Font.Italic=Data_K(y,x).IfItalic;%是否倾斜
            %选中到cell上
            Data_Cells=rngObj.Cells;
            %单元格数字格式
            Data_Cells.NumberFormat=Data_K(y,x).Format;%输出单元格数字格式
            %宽度和高度
            Data_Cells.ColumnWidth=Data_K(y,x).Width;
            Data_Cells.RowHeight=Data_K(y,x).Height;
            %设置对齐方式
            XYA=Data_K(y,x).XYAlignment;
            Data_Cells.HorizontalAlignment=XYA(1);%水平对齐
            Data_Cells.VerticalAlignment=XYA(2);%垂直对齐
            %选中到Interior上
            Data_Interior=rngObj.Interior;
            %设置背景颜色
            Color10=Data_K(y,x).BGColor;
            Color16=[dec2hex(Color10(1),2),dec2hex(Color10(2),2),dec2hex(Color10(3),2)];%由三组16进制数组成,分别为BGR对应的16进制
            Data_Interior.Color=hex2dec(Color16);

            %写入范围内的数据内容
            if strcmp(Data_K(y,x).Data,Data_K(y,x).Formula)
                rngObj.Value=Data_K(y,x).Data;%值
            else 
                rngObj.Formula=Data_K(y,x).Formula;%公式
            end
            %设置边框(默认边框)
            Data_Borders=rngObj.Borders;
            Color16=[dec2hex(212,2),dec2hex(212,2),dec2hex(212,2)];%由三组16进制数组成,分别为BGR对应的16进制
            Data_Borders.Color=hex2dec(Color16);
        end
    end
    
end

exlWkbk.SaveAs(filename);

exlWkbk. Close;
exl.Quit;
exl.delete;


end



function Excel_Data=Read_Excel(filename)

%读取ReadMe文件
exl = actxserver('excel.application');
exlWkbk=exl.Workbooks;
%打开excel文件
exlFile=exlWkbk.Open(filename);
Num_Sheets=exlFile.Sheets.Count;%总的sheet数量
Excel_Data=cell(Num_Sheets,2);%创建储存cell
%按照sheet进行遍历循环
for k=1:Num_Sheets
    
    E_WS=exlFile.Worksheets;
    E_WS.Item(k).Select;%选择第k个表格
    %打开sheet表格
    exlSheet1=exlFile.Sheets.Item(k);
    Sheet_Name=exlSheet1.Name;%表格名字
    %读取最大最小范围
    %获取行数
    robj2=exlSheet1.Columns.End(4);%exlSheet1.Columns.methods在这里可以查到
    num_rows=robj2.row;
    %获取列数
    robj3=exlSheet1.Rows.End(2);
    num_columns=robj3.column;
    %生成储存矩阵,用stuct结构储存
    Data_All=struct([]);
    %遍历循环每个sheet内的单元格
    for x=1:num_columns
        X=x2columns(x);
        %每行进行循环
        for y=1:num_rows
            dat_range=[X,num2str(y),':',X,num2str(y)];
            %选中要读取的范围
            rngObj=exlSheet1.Range(dat_range);
            %读取范围内的数据内容
            Data_I=rngObj.Value;%值
            Data_All(y,x).Data=Data_I;
            Data_Formula_I=rngObj.Formula;%公式
            Data_All(y,x).Formula=Data_Formula_I;
            %选中到Font上
            Data_Font=rngObj.Font;
            %查看字体颜色
            Text_Color_I=dec2hex(Data_Font.Color,6);%由三组16进制数组成,分别为RGB对应的16进制
            Data_All(y,x).TextColor=[hex2dec(Text_Color_I(1:2)),hex2dec(Text_Color_I(3:4)),hex2dec(Text_Color_I(5:6))];
            %查看字体格式
            Data_All(y,x).TextStyle=Data_Font.Name;%字体
            Data_All(y,x).TextSize=Data_Font.Size;%文字大小
            Data_All(y,x).IfBold=Data_Font.Bold;%是否加粗
            Data_All(y,x).IfItalic=Data_Font.Italic;%是否倾斜
            %选中到cell上
            Data_Cells=rngObj.Cells;
            %单元格数字格式
            Format_I=Data_Cells.NumberFormat;%输出单元格数字格式
            Data_All(y,x).Format=Format_I;
            %宽度和高度
            Width_I=Data_Cells.ColumnWidth;
            Height_I=Data_Cells.RowHeight;
            Data_All(y,x).Width=Width_I;
            Data_All(y,x).Height=Height_I;
            %查看对齐方式
            A_X_I=Data_Cells.HorizontalAlignment;%水平对齐
            A_Y_I=Data_Cells.VerticalAlignment;%垂直对齐
            Data_All(y,x).XYAlignment=[A_X_I,A_Y_I];
            %选中到Interior上
            Data_Interior=rngObj.Interior;
            %查看背景颜色
            Data_BGColor_I=dec2hex(Data_Interior.Color,6);%由三组16进制数组成,分别为RGB对应的16进制
            Data_All(y,x).BGColor=[hex2dec(Data_BGColor_I(1:2)),hex2dec(Data_BGColor_I(3:4)),hex2dec(Data_BGColor_I(5:6))];
        end
    end
    Excel_Data{k,1}=Sheet_Name;
    Excel_Data{k,2}=Data_All;
end
%关闭
exlWkbk.Close;
exl.Quit;
exl.delete;
end


function X=x2columns(x)
    %生成列编号
    if x<=26
        X=char(abs('A')-1+x);
    elseif x<702
        X=[char(abs('A')-1+ fix((x-1)/26) ),char(abs('A')-1+mod(x-1,26)+1)];
    elseif x==702
         X='ZZ';
    elseif x<=16384
        X=[char(abs('A')-1+ fix(x/26/26) ),char(abs('A')-1+ fix((x-1)/26)-fix(x/26/26)*26 ),char(abs('A')-1+mod(x-1,26)+1)];
    elseif x>16384
        error('列数过多,目前程序不支持,请自行更改代码')
    end
end

対応するオプションのいくつかを以下に説明します。
水平方向の配置オプション

名前 価値
中央に -4108
左車線維持 -4131
右に寄れ -4152
正当化する -4130
列全体の中央揃え 7

参考:https://docs.microsoft.com/zh-cn/office/vba/api/excel.xlhalign

垂直方向の配置垂直配置オプション

名前 価値
下げる -4107
中央に -4108
寄りかかる -4160

参考:https://docs.microsoft.com/zh-cn/office/vba/api/excel.xlvalign

枠線スタイルの説明

名前 価値
実線 1
無線 -4142
点線 -4115
二重実線 -4119
点線 4

参考:https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.office.interop.excel.xllinestyle?view=excel-pia

領域境界位置

名前 価値
左上から右下への境界線 5
左下から右上への境界線 6
領域の下部の境界線 9
領域の左端の境界線 7
領域の右端の境界線 10
領域の上部の境界線 8
すべてのセルの水平境界線 12
すべてのセルの垂直境界線 11

参考:https://docs.microsoft.com/zh-cn/office/vba/api/excel.xlbordersindex

色の説明
たとえば、Excel の色の値が 16422450 の場合、RGB に変換する必要があります。

1 将16422450转换为16进制:'FA9632'
2 将这个16进制划分为3部分,分别对应B通道'FA',G通道'96',和R通道'32'
3 将这3个16进制转换为10进制,则对应B通道250,G通道150,和R通道50
4 这个颜色的RGB为:[50,150,250]

2.1.1 応用例 1: Excel で描画する

原則として、Matlab を使用して各ユニットの色を設定し、長さと幅を調整します。残りは空です。これを使用すると、異なる値で異なる背景色の効果を実現することもできます。

データのカスタマイズと既存の Excel ファイルの変更が含まれます。

ビューのズームを 25% に設定します。最終的な出力効果:
ここに画像の説明を挿入
関連するコード

clear
clc
%绘制excel画
C=imread('landOcean.jpg');
C2=imresize(C, [128,256]);
xLength=size(C2,2);
yLength=size(C2,1);
%创建生成Excel用到的数据
Data_K=struct([]);
for x=1:xLength
    for y=1:yLength
        %其余变量都是空和默认
        Data_K(y,x).Data=NaN;
        Data_K(y,x).Formula='';
        Data_K(y,x).TextColor=[0,0,0];
        Data_K(y,x).TextStyle='等线';
        Data_K(y,x).TextSize=11;
        Data_K(y,x).IfBold=false;
        Data_K(y,x).IfItalic=false;
        Data_K(y,x).Format='G/通用格式';
        Data_K(y,x).XYAlignment=[1,-4107];
        %只设置宽度和颜色
        Data_K(y,x).Width=0.4374*4;%代表4mm
        Data_K(y,x).Height=2.7682*4;%代表4mm
        Color=[C2(y,x,3),C2(y,x,2),C2(y,x,1)];%BGR的顺序
        %Color16=[dec2hex(Color(1),2),dec2hex(Color(2),2),dec2hex(Color(3),2)];%由三组16进制数组成,分别为BGR对应的16进制
        Data_K(y,x).BGColor=Color;
    end
end

Excel_Data=cell(1,2);
Excel_Data{1,1}='landOcean';%Sheet名称
Excel_Data{1,2}=Data_K;
%将数据写入到Excel
Write_Excel('landOcean.xlsx',Excel_Data)

%下面代码为删除边框用
exl=actxserver('excel.application');
exlWkbk=exl.Workbooks;
%打开excel文件
exlFile=exlWkbk.Open('landOcean.xlsx');
exlSheet1=exlFile.Sheets.Item(1);
%选择图像范围
X=x2columns(xLength);
dat_range=['A1:',X,num2str(yLength)];
rngObj=exlSheet1.Range(dat_range);
%删除边框
Data_Borders=rngObj.Borders;
Data_Borders.LineStyle=-4142;
%之后处理收尾
exlFile.Save;%修改之后必须保存
exlWkbk.Close;
exl.Quit;
exl.delete;




function Write_Excel(filename,Excel_Data)
% file=fullfile(pwd, file);%加上全路径
exl=actxserver('excel.application');
exlWkbk=exl.WorkBooks.Add();
E_WS=exlWkbk.Worksheets;
%创建N个表格
sheet_N=size(Excel_Data,1);
for k=1:sheet_N
    E_WS.Item(k).Select;%选择第k个表格
    E_WS_k=E_WS.Item(k);
    E_WS_k.Name=Excel_Data{k,1};%建立名字
    if sheet_N>1 && k<sheet_N
        E_WS.Item(1).Select;%选择第一个表格
        E_WS.Add([], E_WS.Item(E_WS.Count));%在后面添加一个新sheet
    end
    E_WS.Item(k).Select;%重新选择回第k个表格
    exlSheet1=exl.Activesheet;%选中当前工作表
    Data_K=Excel_Data{k,2};%获取当前工作表数据
    num_rows=size(Data_K,1);%行数
    num_columns=size(Data_K,2);%列数
    for x=1:num_columns

        X=x2columns(x);%把列转换为Excel的索引格式
        for y=1:num_rows
            dat_range=[X,num2str(y),':',X,num2str(y)];
            %选中要写入的范围
            rngObj=exlSheet1.Range(dat_range);
            %选中到Font上
            Data_Font=rngObj.Font;
            %写入字体颜色
            Color10=Data_K(y,x).TextColor;
            Color16=[dec2hex(Color10(1),2),dec2hex(Color10(2),2),dec2hex(Color10(3),2)];%由三组16进制数组成,分别为BGR对应的16进制
            Data_Font.Color=hex2dec(Color16);
            %改变字体格式
            Data_Font.Name=Data_K(y,x).TextStyle;%字体
            Data_Font.Size=Data_K(y,x).TextSize;%文字大小
            Data_Font.Bold=Data_K(y,x).IfBold;%是否加粗
            Data_Font.Italic=Data_K(y,x).IfItalic;%是否倾斜
            %选中到cell上
            Data_Cells=rngObj.Cells;
            %单元格数字格式
            Data_Cells.NumberFormat=Data_K(y,x).Format;%输出单元格数字格式
            %宽度和高度
            Data_Cells.ColumnWidth=Data_K(y,x).Width;
            Data_Cells.RowHeight=Data_K(y,x).Height;
            %设置对齐方式
            XYA=Data_K(y,x).XYAlignment;
            Data_Cells.HorizontalAlignment=XYA(1);%水平对齐
            Data_Cells.VerticalAlignment=XYA(2);%垂直对齐
            %选中到Interior上
            Data_Interior=rngObj.Interior;
            %设置背景颜色
            Color10=Data_K(y,x).BGColor;
            Color16=[dec2hex(Color10(1),2),dec2hex(Color10(2),2),dec2hex(Color10(3),2)];%由三组16进制数组成,分别为BGR对应的16进制
            Data_Interior.Color=hex2dec(Color16);
            %写入范围内的数据内容
            if strcmp(Data_K(y,x).Data,Data_K(y,x).Formula)
                rngObj.Value=Data_K(y,x).Data;%值
            else 
                rngObj.Formula=Data_K(y,x).Formula;%公式
            end
            %设置边框(默认边框)
            Data_Borders=rngObj.Borders;
            Color16=[dec2hex(212,2),dec2hex(212,2),dec2hex(212,2)];%由三组16进制数组成,分别为BGR对应的16进制
            Data_Borders.Color=hex2dec(Color16);
        end
    end
    
end



exlWkbk.SaveAs(filename);

exlWkbk.Close;
exl.Quit;
exl.delete;


end

function X=x2columns(x)
    %生成列编号
    if x<=26
        X=char(abs('A')-1+x);
    elseif x<702
        X=[char(abs('A')-1+ fix((x-1)/26) ),char(abs('A')-1+mod(x-1,26)+1)];
    elseif x==702
         X='ZZ';
    elseif x<=16384
        X=[char(abs('A')+ fix((x-703)/26/26) ),char(abs('A')+mod(fix( (x-703)/26 ),26) ),char(abs('A')+mod(x-1,26))];
    elseif x>16384
        error('列数过多,目前程序不支持,请自行更改代码')
    end
end

このプログラムは遅いです。高速化したい場合は、フォント、配置、境界線の設定など、色を除く残りのコードを削除できます。

2.2 純粋なデータの高速書き込みと編集

設定を一つずつ編集すると速度が非常に遅くなりますので、高速化するには範囲内の値を直接設定します。

以下に Excel の表を 5 シート生成し、各シートの名前を変更してデータを書き込むプログラムを示します。他の形式設定を行わない場合、書き込み速度が速く、Excel の高速バッチ生成に適しています。

コードは以下のように表示されます:

clear
clc
close all

file='WriteIt.xlsx';
% file=fullfile(pwd, file);
exl=actxserver('excel.application');
exlWkbk=exl.WorkBooks.Add();
E_WS=exlWkbk.Worksheets;

%创建5个表格
sheet_N=5;
for k=1:sheet_N
    E_WS.Item(k).Select;%选择第k个表格
    E_WS_k=E_WS.Item(k);
    E_WS_k.Name=['表格',num2str(k)];
    if sheet_N>1 && k<sheet_N
        E_WS.Item(1).Select;%选择第一个表格
        E_WS.Add([], E_WS.Item(E_WS.Count));%在后面添加一个新sheet
    end
    E_WS.Item(k).Select;%选择第k个表格
    %创建数据和写入范围
    Size=2*k+1;
    A=magic(Size);
    data=num2cell(A);
    range=['A1:',char(abs('A')-1+Size),num2str(Size)];
    %整体赋值方法
    E_WS.Item(k).Select;%选择第k个表格
    ran=exl.Activesheet.get('Range', range);
    ran.value=data;

end
exlWkbk.SaveAs(file);

exlWkbk. Close;
exl.Quit;
exl.delete;

2.3 Excelでのグラフの描画

ここでは、Excel によって記録されたマクロ コードについて詳しく説明します。まずデータのないテーブルを作成してから、データを追加します。

出力効果:
ここに画像の説明を挿入
matlab のコードは次のとおりです

clear
clc
close all

file='Test.xlsx';
%创建文件
exl=actxserver('excel.application');
exlWkbk=exl.WorkBooks.Add();
E_WS=exlWkbk.Worksheets;
%选择第一个表格
E_WS.Item(1).Select
%exlSheet1=exlFile.Sheets.Item(1);
%选中当前活动表格
exlASh=exl.Activesheet;
%添加数据
data=num2cell(rand(5,2));
range='A1:B5';
ran=exl.Activesheet.get('Range', range);
ran.value=data;

%选择当前表格中的形状选项
exlASh_Shape=exlASh.Shapes;

%选择最开始的数据(这个数据是为了创建表格用)
exlASh.Range('A1:A2').Select;
%添加表格
Exl_AddCh=exlASh_Shape.AddChart2();%默认是直方图
Exl_Ch=Exl_AddCh.Chart;
Exl_Ch.ChartType='xlXYScatterSmooth';
Exl_Ch.FullSeriesCollection(1).Delete;
%重新定义系列和数据点
Exl_Ch.SeriesCollection.NewSeries;
Ch_Data_1=Exl_Ch.FullSeriesCollection(1);%系列1
Ch_Data_1.Name='系列1';
Ch_Data_1.XValues='=Sheet1!$A$1:$A$5';
Ch_Data_1.Values='=Sheet1!$B$1:$B$5';

%添加和更改坐标轴名称
Exl_Ch.Axes(1).HasTitle=true;
Exl_Ch.Axes(2).HasTitle=true;
Ch_Tt_X=Exl_Ch.Axes(1).AxisTitle;
Ch_Tt_X.Caption='X轴';
Ch_Tt_Y=Exl_Ch.Axes(2).AxisTitle;
Ch_Tt_Y.Caption='Y轴';

%添加趋势线
Trend_1=Exl_Ch.FullSeriesCollection(1).Trendlines.Add;
Trend_1.DisplayEquation=true;
Trend_1.DisplayRSquared=true;

%更改Chart位置和大小
exlASh_Shape1=exlASh_Shape.Item(1);
exlASh_Shape1.Top=50;
exlASh_Shape1.Left=160;
exlASh_Shape1.Height=300;
exlASh_Shape1.Width=300;

%保存
exlWkbk.SaveAs(file);
%exlFile.Save;%如果对文件进行读取和修改,用这个
%关闭程序
exlWkbk. Close;
exl.Quit;
exl.delete;

その中で、さまざまなグラフィックの名前は、Excel にマクロを記録することで見つけることができます。以下にいくつかの例を示します。

名前 価値
縦棒グラフ xlColumnClustered
ヒストグラム xlヒストグラム
円グラフ xlパイ
散布図 xlXY散乱
滑らかな曲線で結ばれた散布図 xlXYScatterSmooth
滑らかな曲線で接続された散布図 (点なし) xlXYScatterSmoothNoMarkers

おすすめ

転載: blog.csdn.net/weixin_42943114/article/details/109810357