更多內容,請訪問個人 我的博客。shell
用perl處理excel有兩種流行的模塊:一種是 win32:OLE
模塊,優勢是功能強大,在excel上能作的事情用這個模塊都能作,缺點是沒法跨平臺,必須在win系統上使用且必須安裝office軟件;另外一種是 Spreadsheet
模塊,優勢是跨平臺,不依賴系統和軟件,缺點是功能不是不少,但基本功能都能實現。express
若是在win平臺處理excel,建議使用 win32:OLE
模塊(教程傳送門),本文主要講解 Spreadsheet
模塊的使用方法。數組
從 Spreadsheet::ParseExcel 和 Spreadsheet::WriteExcel 的官方資料中咱們能夠知道:bash
也就是說,若是想更好的支持 xlsx
格式的excel須要用到 Spreadsheet::ParseXLSX 和 Excel::Writer::XLSX 模塊。less
另外, Spreadsheet::ParseExcel::SaveParser 能夠支持在已存在的
xls
表中修改數據,可是支持效果遠沒有win32:OLE
模塊強大,修改以後的表格會丟失部分不支持的宏命令和表格等,最遺憾的是僅支持xls
,並不支持xlsx
。ide
在終端中輸入 sudo perl -MCPAN -e "install 'Spreadsheet::ParseExcel'"
,回車,以下圖:字體
若出現以下圖,則安裝成功:ui
引用 use Spreadsheet::ParseExcel;
類,以下:this
use Spreadsheet::ParseExcel;
複製代碼
new()方法能夠新建一個提取類,以下:編碼
my $parser = Spreadsheet::ParseExcel->new(); #新建提取類
複製代碼
如果2007版以上的excel,則須要用到 Spreadsheet::ParseXLSX ,以下:
use Spreadsheet::ParseXLSX; #引用
my $parser = Spreadsheet::ParseXLSX->new(); #新建xlsx提取類
複製代碼
若excel須要密碼才能打開,則新建密碼提取類,以下:
$parser = Spreadsheet::ParseExcel->new( Password => 'secret' ); #若excel須要密碼才能打開,則新建密碼提取類
複製代碼
獲取excel表的工做薄,若無則返回 under
my $workbook = $parser->parse('Book1.xls'); #獲取excel表的工做薄,若無則返回 `under`
複製代碼
判斷是否存在該excel表格
# error_code() => error()
# ============ =======
# 0 => ''
# 1 => '文件沒有找到'
# 2 => '該文件不是標準的excel格式文檔'
# 3 => '文件加密了'
if ( !defined $workbook ) { #通常須要判斷是否存在該excel表格
die $parser->error_code(), $parser->error(), ".\n";
}
複製代碼
Spreadsheet::ParseExcel::Workbook
是由 Spreadsheet::ParseExcel
的 parse()
方法得到,有以下幾種經常使用方法(完整方法使用傳送門):
$workbook->worksheets()
$workbook->worksheet()
$workbook->worksheet_count()
$workbook->get_filename()
複製代碼
循環獲取全部的sheet表,以下:
for my $worksheet ( $workbook->worksheets() ) {
#循環獲取全部的sheet表
...
}
複製代碼
經過sheet表名或表索引獲取單一sheet表,若無則返回 under
,以下:
$worksheet = $workbook->worksheet('Sheet1'); #獲取名爲"Sheet1"的sheet表
$worksheet = $workbook->worksheet(0); #獲取第一張sheet表
複製代碼
獲取sheet表的個數,以下:
my $worksheet_count = $workbook->worksheet_count(); #獲取sheet表的個數
複製代碼
獲取excel表的全路徑+名稱,以下:
my $filename = $workbook->get_filename(); #獲取excel表的全路徑+名稱
複製代碼
Spreadsheet::ParseExcel::Worksheet
是由 worksheets()
或 worksheet()
方法得到,有以下幾種經常使用方法(完整方法使用傳送門):
$worksheet->get_cell()
$worksheet->row_range()
$worksheet->col_range()
$worksheet->get_name()
複製代碼
由指定行和列獲取單元格,若不存在則返回 under
,以下:
my $cell = $worksheet->get_cell($row, $col); #由指定行和列獲取單元格
複製代碼
返回一個二元列表 ($min, $max)
,表示行數的最小值和最大值,以下圖:
my ( $row_min, $row_max ) = $worksheet->row_range(); #行數的最小值和最大值
複製代碼
返回一個二元列表 ($min, $max)
,表示列數的最小值和最大值,以下圖:
my ( $col_min, $col_max ) = $worksheet->col_range(); #列數的最小值和最大值
複製代碼
獲取sheet的名稱,以下圖:
my $name = $worksheet->get_name(); #獲取sheet的名稱
複製代碼
Spreadsheet::ParseExcel::Cell
有以下幾種經常使用方法(完整方法使用傳送門):
$cell->value()
$cell->unformatted()
複製代碼
獲取單元格的值(有格式)。例如,在單元格中輸入數字 123
,單元格顯示爲 123.00
, 方法value()
的返回值爲 123.00
。以下:
my $value = $cell->value(); #獲取單元格的值(有格式)
複製代碼
獲取單元格的值(無格式)。例如,在單元格中輸入數字 123
,單元格顯示爲 123.00
,方法 unformatted()
的返回值爲 123
。以下:
my $value = $cell->unformatted(); #獲取單元格的值(有格式)
複製代碼
獲取 單元格格式
,以下:
my $format = $cell->get_format(); #獲取單元格格式
複製代碼
Spreadsheet::ParseExcel::Format
類有以下方法:
$format->{Font}
$format->{AlignH}
$format->{AlignV}
$format->{Indent}
$format->{Wrap}
$format->{Shrink}
$format->{Rotate}
$format->{JustLast}
$format->{ReadDir}
$format->{BdrStyle}
$format->{BdrColor}
$format->{BdrDiag}
$format->{Fill}
$format->{Lock}
$format->{Hidden}
$format->{Style}
複製代碼
獲取單元格的 字體
,以下:
my $font = $format->{Font}
複製代碼
獲取單元格的 水平對齊方式
,返回值以下:
0 => 常規
1 => 靠左
2 => 居中
3 => 靠右
4 => 填充
5 => 兩端對齊
6 => 跨列居中
7 => 分散對齊
複製代碼
獲取單元格的 水平對齊方式
中 靠左
的縮進值
獲取單元格的 垂直對齊方式
,返回值以下:
0 => 靠上
1 => 居中
2 => 靠下
3 => 兩端對齊
4 => 分散對齊
複製代碼
是否選擇了 文本控制
中的 自動換行
是否選擇了 文本控制
中的 縮小字體填充
獲取 字體旋轉方向
,以下:
0 => 無
1 => 垂直
2 => 逆時針90度
3 => 順時針90度
複製代碼
是否選擇了 兩端分散對齊
獲取 文本閱讀方向
獲取 邊框線型
,以下數組:
[ $left, $right, $top, $bottom ]
複製代碼
獲取 邊框顏色
,以下數組:
[ $left, $right, $top, $bottom ]
複製代碼
獲取 對角線邊框種類、線型、顏色
,以下數組:
[$kind, $style, $color ]
複製代碼
邊框種類以下:
0 => 無
1 => 右上對角線
2 => 右下對角線
3 => 所有
複製代碼
獲取 填充
的 圖案樣式
、 圖案顏色
、 背景色
,以下:
[ $pattern, $front_color, $back_color ]
複製代碼
獲取是否 鎖定
單元格
獲取是否 隱藏
公式
獲取單元格的 字體
,以下:
my $font = $format->{Font}
複製代碼
Spreadsheet::ParseExcel::Font
類有以下方法:
$font->{Name}
$font->{Bold}
$font->{Italic}
$font->{Height}
$font->{Underline}
$font->{UnderlineStyle}
$font->{Color}
$font->{Strikeout}
$font->{Super}
複製代碼
獲取 字體名稱
,如 Arial
獲取字體是否 加粗
獲取字體是否 斜體
獲取字體 大小
獲取字體是否開啓 下劃線
獲取字體 下劃線樣式
,以下:
0 => 無
1 => 下劃線
2 => 雙下劃線
33 => Single accounting
34 => Double accounting
複製代碼
獲取 字體顏色
獲取字體是否添加 刪除線
獲取字體是 上標
仍是 下標
,以下:
0 => 無
1 => 上標
2 => 下標
複製代碼
引用 use Spreadsheet::WriteExcel;
類,以下:
use Spreadsheet::WriteExcel;
複製代碼
new()方法能夠基於文件名新建一個excel表,以下:
my $workbook = Spreadsheet::WriteExcel->new('filename.xls'); #新建xls表
複製代碼
如果新建2007版以上的excel,則須要用到 Excel::Writer::XLSX ,以下:
use Excel::Writer::XLSX; #引用
my $workbook = Excel::Writer::XLSX->new( 'perl.xlsx' ); #新建xlsx表
複製代碼
若建立失敗,則返回under,以下:
die "Problems creating new Excel file: $!" unless defined $workbook;
複製代碼
用於加強兼容性,以下:
$workbook->compatibility_mode(); #用於加強兼容性
複製代碼
新增一個sheet,以下:
$worksheet1 = $workbook->add_worksheet(); # Sheet1
$worksheet2 = $workbook->add_worksheet('自定義名稱'); # 自定義名稱
$worksheet3 = $workbook->add_worksheet(); # Sheet3
複製代碼
更多詳細請移步 Spreadsheet::WriteExcel::Chart
通常狀況下,excel文件會自動關閉,但使用 close()
能夠肯定關閉excel文件,以下:
$workbook->close() or die "Error closing file: $!"; #關閉excel文件
複製代碼
設置excel表附加信息,以下:
#設置excel表附加信息
$workbook->set_properties(
title => 'This is an example spreadsheet',
author => 'John McNamara',
comments => 'Created with Perl and Spreadsheet::WriteExcel',
);
複製代碼
可設置的信息以下:
title
subject
author
manager
company
category
keywords
comments
複製代碼
$worksheet->write(0, 0, 'Hello' ); # write_string()
$worksheet->write(1, 0, 'One' ); # write_string()
$worksheet->write(2, 0, 2 ); # write_number()
$worksheet->write(3, 0, 3.00001 ); # write_number()
$worksheet->write(4, 0, "" ); # write_blank()
$worksheet->write(5, 0, '' ); # write_blank()
$worksheet->write(6, 0, undef ); # write_blank()
$worksheet->write(7, 0 ); # write_blank()
$worksheet->write(8, 0, 'http://www.perl.com/'); # write_url()
$worksheet->write('A9', 'ftp://ftp.cpan.org/' ); # write_url()
$worksheet->write('A10', 'internal:Sheet1!A1' ); # write_url()
$worksheet->write('A11', 'external:c:\foo.xls' ); # write_url()
$worksheet->write('A12', '=A3 + 3*A4' ); # write_formula()
$worksheet->write('A13', '=SIN(PI()/4)' ); # write_formula()
$worksheet->write('A14', \@array ); # write_row()
$worksheet->write('A15', [\@array] ); # write_col()
複製代碼
$format
參數是可選的,用於定義單元格的格式,以下:
my $format = $workbook->add_format();
$format->set_bold(); #加粗
$format->set_color('red'); #字體紅色
$format->set_align('center'); #居中
$worksheet->write(4, 0, 'Hello', $format);
複製代碼
單元格座標的確認使用格式以下:
(0, 0)
('A1')
複製代碼
互換使用方法以下:
use Spreadsheet::WriteExcel::Utility;
($row, $col) = xl_cell_to_rowcol('C2'); # (1, 2)
$str = xl_rowcol_to_cell(1, 2); # C2
複製代碼
excel會將相似於數字的內容轉換成數字,例如輸入 0123
,excel會將它轉化爲 123
,若是想呈現出 0123
,則作以下處理:
# 以下,結果是 1209
$worksheet->write('A1', '01209');
# 設置格式,結果是 01209
my $format1 = $workbook->add_format(num_format => '00000');
$worksheet->write('A2', '01209', $format1);
# 使用字符串格式,結果是 01209
$worksheet->write_string('A3', '01209');
# 使用keep_leading_zeros()方法,結果是 01209
$worksheet->keep_leading_zeros();
$worksheet->write('A4', '01209');
複製代碼
以上操做呈現出的效果以下:
-----------------------------------------------------------
| | A | B | C | D | ...
-----------------------------------------------------------
| 1 | 1209 | | | | ...
| 2 | 01209 | | | | ...
| 3 | 01209 | | | | ...
| 4 | 01209 | | | | ...
複製代碼
write_row(column,
format) 寫入數組數據,以下:
@array = ('awk', 'gawk', 'mawk');
$array_ref = \@array;
$worksheet->write_row(0, 0, $array_ref);
# 以上代碼等價於
$worksheet->write(0, 0, $array[0]);
$worksheet->write(0, 1, $array[1]);
$worksheet->write(0, 2, $array[2]);
複製代碼
如果二維數組,以下:
@eec = (
['maggie', 'milly', 'molly', 'may' ],
[13, 14, 15, 16 ],
['shell', 'star', 'crab', 'stone']
);
$worksheet->write_row('A1', \@eec);
複製代碼
呈現出的效果,以下:
-----------------------------------------------------------
| | A | B | C | D | E | ...
-----------------------------------------------------------
| 1 | maggie | 13 | shell | ... | ... | ...
| 2 | milly | 14 | star | ... | ... | ...
| 3 | molly | 15 | crab | ... | ... | ...
| 4 | may | 16 | stone | ... | ... | ...
| 5 | ... | ... | ... | ... | ... | ...
| 6 | ... | ... | ... | ... | ... | ...
複製代碼
write_col(column,
format) 寫入數組數據,以下:
@array = ('awk', 'gawk', 'mawk');
$array_ref = \@array;
$worksheet->write_col(0, 0, $array_ref);
# 以上代碼等價於
$worksheet->write(0, 0, $array[0]);
$worksheet->write(1, 0, $array[1]);
$worksheet->write(2, 0, $array[2]);
複製代碼
如果二維數組,以下:
@eec = (
['maggie', 'milly', 'molly', 'may' ],
[13, 14, 15, 16 ],
['shell', 'star', 'crab', 'stone']
);
$worksheet->write_col('A1', \@eec);
複製代碼
呈現出的效果,以下:
-----------------------------------------------------------
| | A | B | C | D | E | ...
-----------------------------------------------------------
| 1 | maggie | milly | molly | may | ... | ...
| 2 | 13 | 14 | 15 | 16 | ... | ...
| 3 | shell | star | crab | stone | ... | ...
| 4 | ... | ... | ... | ... | ... | ...
| 5 | ... | ... | ... | ... | ... | ...
| 6 | ... | ... | ... | ... | ... | ...
複製代碼
寫入超連接,以下:
$worksheet->write_url(0, 0, 'ftp://www.perl.org/' );
$worksheet->write_url(1, 0, 'http://www.perl.com/', 'Perl home' );
$worksheet->write_url('A3', 'http://www.perl.com/', $format );
$worksheet->write_url('A4', 'http://www.perl.com/', 'Perl', $format);
$worksheet->write_url('A5', 'mailto:jmcnamara@cpan.org' );
複製代碼
在一塊區域內寫入超連接,以下:
$worksheet->write_url(0, 0, 0, 3, 'ftp://www.perl.org/' );
$worksheet->write_url(1, 0, 0, 3, 'http://www.perl.com/', 'Perl home');
$worksheet->write_url('A3:D3', 'internal:Sheet2!A1' );
$worksheet->write_url('A4:D4', 'external:c:\temp\foo.xls' );
複製代碼
寫入公式,以下:
$worksheet->write_formula(0, 0, '=$B$3 + B4' );
$worksheet->write_formula(1, 0, '=SIN(PI()/4)');
$worksheet->write_formula(2, 0, '=SUM(B1:B5)' );
$worksheet->write_formula('A4', '=IF(A3>1,"Yes", "No")' );
$worksheet->write_formula('A5', '=AVERAGE(1, 2, 3, 4)' );
$worksheet->write_formula('A6', '=DATEVALUE("1-Jan-2001")');
複製代碼
增長批註,以下:
$worksheet->write (2, 2, 'Hello');
$worksheet->write_comment(2, 2, '這是個批註');
複製代碼
還能夠增長信息以下:
# encoding => 若爲1,則代表使用UTF-16BE編碼
# author => 批註的做者
# author_encoding => 做者字符串是否用UTF-16BE編碼
# visible => 是否設置開啓excel時批註可見。1爲可見;0爲不可見
# x_scale => 設置批註框寬度的壓縮比
# width => 設置批註框寬度
# y_scale => 設置批註框高度的壓縮比
# height => 設置批註框高度
# color => 設置批註框背景色
# start_cell => 設置批註框出現的位置,如「E2」
# start_row => 設置批註框出現的行位置
# start_col => 設置批註框出現的列位置
$worksheet->write_comment('C3', 'Hello', visible => 1, author => 'Perl');
複製代碼
在sheet中插入一個png、jpeg或bmp格式的圖片, $x
和 $y
表示在單元格中圖片靠左和靠上的距離, $scale_x
和 $scale_y
表示縮放比例,以下:
$worksheet->insert_image('A1', 'perl.bmp', 0, 0, 2, 0.8);
複製代碼
插入表格,詳情請移步 Spreadsheet::WriteExcel::Chart
下拉選項,以下:
#僅能輸入大於100的數字
$worksheet->data_validation('B3',
{
validate => 'integer',
criteria => '>',
value => 100,
});
#在下拉選項中選擇值
$worksheet->data_validation('B5:B9',
{
validate => 'list',
value => ['open', 'high', 'close'],
});
複製代碼
獲取sheet表的名稱,以下:
foreach my $sheet ($workbook->sheets()) {
print $sheet->get_name();
}
複製代碼
設置默認展現的sheet表,以下:
$worksheet1 = $workbook->add_worksheet('To');
$worksheet2 = $workbook->add_worksheet('the');
$worksheet3 = $workbook->add_worksheet('wind');
$worksheet3->activate(); #默認展現wind表
複製代碼
選中sheet表,以下:
$worksheet1->activate();
$worksheet2->select();
$worksheet3->select();
複製代碼
隱藏sheet表,以下:
$worksheet2->hide();
複製代碼
設置爲第一個sheet,以下:
for (1..20) {
$workbook->add_worksheet;
}
$worksheet21 = $workbook->add_worksheet();
$worksheet22 = $workbook->add_worksheet();
$worksheet21->set_first_sheet(); #設置爲第一個sheet
$worksheet22->activate();
複製代碼
開啓保護,密碼可選,以下:
$worksheet->protect();
or
$worksheet->protect('drowssap');
複製代碼
選中指定區域,以下:
$worksheet1->set_selection(3, 3); # 1. Cell D4.
$worksheet2->set_selection(3, 3, 6, 6); # 2. Cells D4 to G7.
$worksheet3->set_selection(6, 6, 3, 3); # 3. Cells G7 to D4.
$worksheet4->set_selection('D4'); # Same as 1.
$worksheet5->set_selection('D4:G7'); # Same as 2.
$worksheet6->set_selection('G7:D4'); # Same as 3.
複製代碼
設置行屬性,以下:
$worksheet->set_row(0, 20); # 設置第一行的行高爲20
複製代碼
設置列屬性,同上
合併單元格,以下:
my $format = $workbook->add_format(
border => 6,
valign => 'vcenter',
align => 'center',
);
$worksheet->merge_range('B3:D4', 'Vertical and horizontal', $format);
複製代碼
設置zoom屬性
顛倒A1的位置
隱藏爲0的值,以下:
$worksheet->hide_zero();
複製代碼
設置sheet Tab的顏色,以下:
$worksheet1->set_tab_color('red');
$worksheet2->set_tab_color(0x0C);
複製代碼
自動篩選,以下:
$worksheet->autofilter(0, 0, 10, 3);
$worksheet->autofilter('A1:D11'); # Same as above in A1 notation.
複製代碼
設置篩選條件,以下:
$worksheet->filter_column('A', 'x > 2000');
$worksheet->filter_column('B', 'x > 2000 and x < 5000');
複製代碼
運算符以下:
運算符 近義詞
== = eq =~
!= <> ne !=
>
<
>=
<=
and &&
or ||
複製代碼
*
表示一個或多個字符, ?
表示一個字符
'x == Blanks' #空白
'x == NonBlanks' #不爲空白
'Top 10 Items' #前10個
'Bottom 5 Items' #後5個
'Top 25 %' #前25%
'Bottom 50 %' #後50%
'x =~ b*' # 以b開頭
'x !~ b*' # 不以b開頭
'x =~ *b' # 以b結尾
'x !~ *b' # 不以b結尾
'x =~ *b*' # 包含b
'x !~ *b*' # 不包含b
複製代碼
設置單元格屬性,以下:
my $format = $workbook->add_format();
$format->set_format_properties(bold => 1, color => 'red');
複製代碼
設置字體,默認爲 Arial
,以下:
$format->set_font('Times New Roman');
複製代碼
設置字體大小,默認大小爲 10
,以下:
my $format = $workbook->add_format();
$format->set_size(30);
複製代碼
設置字體顏色,以下:
# 'black'
# 'blue'
# 'brown'
# 'cyan'
# 'gray'
# 'green'
# 'lime'
# 'magenta'
# 'navy'
# 'orange'
# 'pink'
# 'purple'
# 'red'
# 'silver'
# 'white'
# 'yellow'
my $format = $workbook->add_format();
$format->set_color('red');
$worksheet->write(0, 0, 'wheelbarrow', $format);
複製代碼
是否開啓加粗。通常狀況下能夠添加100-1000的參數。400表示正常,700表示加粗,1000表示很是粗。但最好是不寫,以下:
$format->set_bold(); #加粗
複製代碼
設置斜體,以下:
$format->set_italic();
複製代碼
設置下劃線,以下:
$format->set_underline(0); #取消下劃線
$format->set_underline(); #設置下劃線
$format->set_underline(1); #設置下劃線
$format->set_underline(2); #設置雙下劃線
複製代碼
設置刪除線
設置角標,以下:
0 => 正常
1 => 上角標
2 => 下角標
複製代碼
設置數字格式,以下:
$format01->set_num_format('0.000');
$worksheet->write(0, 0, 3.1415926, $format01); # 3.142
$format02->set_num_format('#,##0');
$worksheet->write(1, 0, 1234.56, $format02); # 1,235
$format03->set_num_format('#,##0.00');
$worksheet->write(2, 0, 1234.56, $format03); # 1,234.56
$format04->set_num_format('$0.00');
$worksheet->write(3, 0, 49.99, $format04); # $49.99
# Note you can use other currency symbols such as the pound or yen as well.
# Other currencies may require the use of Unicode.
$format07->set_num_format('mm/dd/yy');
$worksheet->write(6, 0, 36892.521, $format07); # 01/01/01
$format08->set_num_format('mmm d yyyy');
$worksheet->write(7, 0, 36892.521, $format08); # Jan 1 2001
$format09->set_num_format('d mmmm yyyy');
$worksheet->write(8, 0, 36892.521, $format09); # 1 January 2001
$format10->set_num_format('dd/mm/yyyy hh:mm AM/PM');
$worksheet->write(9, 0, 36892.521, $format10); # 01/01/2001 12:30 AM
$format11->set_num_format('0 "dollar and" .00 "cents"');
$worksheet->write(10, 0, 1.87, $format11); # 1 dollar and .87 cents
# Conditional formatting
$format12->set_num_format('[Green]General;[Red]-General;General');
$worksheet->write(11, 0, 123, $format12); # > 0 Green
$worksheet->write(12, 0, -45, $format12); # < 0 Red
$worksheet->write(13, 0, 0, $format12); # = 0 Default colour
# Zip code
$format13->set_num_format('00000');
$worksheet->write(14, 0, '01209', $format13);
複製代碼
是否上鎖,以下:
my $locked = $workbook->add_format();
$locked->set_locked(1); # A non-op
my $unlocked = $workbook->add_format();
$locked->set_locked(0);
# Enable worksheet protection
$worksheet->protect();
# This cell cannot be edited.
$worksheet->write('A1', '=1+2', $locked);
# This cell can be edited.
$worksheet->write('A2', '=1+2', $unlocked);
複製代碼
是否隱藏,以下:
my $hidden = $workbook->add_format();
$hidden->set_hidden();
# Enable worksheet protection
$worksheet->protect();
# The formula in this cell isn't visible
$worksheet->write('A1', '=1+2', $hidden);
複製代碼
設置對齊方式,以下:
Horizontal
# 'left'
# 'center'
# 'right'
# 'fill'
# 'justify'
# 'center_across'
Vertical
# 'top'
# 'vcenter'
# 'bottom'
# 'vjustify'
複製代碼
設置背景色
設置前景色
設置邊框,以下:
Index Name Weight Style
===== ============= ====== ===========
0 None 0
1 Continuous 1 -----------
2 Continuous 2 -----------
3 Dash 1 - - - - - -
4 Dot 1 . . . . . .
5 Continuous 3 -----------
6 Double 3 ===========
7 Continuous 0 -----------
8 Dash 2 - - - - - -
9 Dash Dot 1 - . - . - .
10 Dash Dot 2 - . - . - .
11 Dash Dot Dot 1 - . . - . .
12 Dash Dot Dot 2 - . . - . .
13 SlantDash Dot 2 / - . / - .
複製代碼
設置邊框顏色
格式刷