上海电信5GLampsite新建脚本.rs

[dependencies]
itertools = "0.10.5"
calamine = "0.19.1"
simple_excel_writer = "0.2.0"

use std::time::Instant;
use itertools::Itertools;
use std::collections::HashMap;
use simple_excel_writer as excel;
use excel::*;
use calamine::{Reader, Xlsx, open_workbook};
fn main(){
println!("Author:snoweo\n");
let start = Instant::now();
let mut device_name =vec![];
let mut gnodebid =vec![];
let mut area =vec![];
let mut vlan =vec![];
let mut ipv4_address =vec![];
let mut ipv4_gateway =vec![];
let mut ipv6_address =vec![];
let mut ipv6_gateway =vec![];
let mut serial_number =vec![];
let mut bbu_port =vec![];
let mut hub_coding =vec![];
let mut hub_id =vec![];
let mut hub_name =vec![];
let mut hub_port =vec![];
let mut prru_id =vec![];
let mut prru_name =vec![];
let mut longitude =vec![];
let mut latitude =vec![];
let mut excel: Xlsx<_> = open_workbook(r".\工单.xlsx").unwrap();
if let Some(Ok(r)) = excel.worksheet_range("Sheet0") {
for row in r.rows() {
device_name.push(row[2].to_string());
gnodebid.push(row[5].to_string());
area.push(row[7].to_string());
vlan.push(row[60].to_string());
ipv4_address.push(row[61].to_string());
ipv4_gateway.push(row[62].to_string());
ipv6_address.push(row[63].to_string());
ipv6_gateway.push(row[64].to_string());
serial_number.push(row[74].to_string());
bbu_port.push(row[75].to_string());
hub_coding.push(row[76].to_string());
hub_id.push(row[77].to_string());
hub_name.push(row[79].to_string());
hub_port.push(row[81].to_string());
prru_id.push(row[83].to_string());
prru_name.push(row[85].to_string());
longitude.push(row[91].to_string());
latitude.push(row[92].to_string());
}
}
//数据检查
{
let mut prru_id_chk = vec![];
let mut hub_id_chk = vec![];
let mut hub_id_chkde = vec![];
for i in prru_id.iter().unique() {prru_id_chk.push(i);}
for j in 2..hub_id.len()-2 {hub_id_chk.push(format!("{}{}",hub_id[j],hub_port[j]))}
for k in hub_id_chk.iter().unique() {hub_id_chkde.push(k);}
if prru_id.len() != prru_id_chk.len(){println!("警告!:PRRUID重复,请更正工单数据......\n");}
if hub_id_chk.len() != hub_id_chkde.len(){println!("警告!:HUBID或HUB下联端口重复,请更正工单数据......\n");}
}
//工作簿一:电信SA新建_lampsite_MOCN_MORAN_IPV4_IPV6
let mut wb = Workbook::create("./电信SA新建_lampsite_MOCN_MORAN_IPV4_IPV6.xlsx");
//1、Base Station Transport Data
let mut sheet = wb.create_sheet("Base Station Transport Data");
wb.write_sheet(&mut sheet, |sheet_writer| {
let sw = sheet_writer;
use std::i64;
let gnodebid:String =i64::from_str_radix(gnodebid[2].as_str(),16).unwrap().to_string();
sw.append_row(row!["Base Station", blank!(4),"5G"])?;
sw.append_row(row!["*Name", "*DO","*Product Type","*Soft Version","*Ne Version","*gNodeB Name","省份-城市","城市编码","地市","*gNodeB标识","基站模板","无线模板","BBU场景","路由场景","共享模式","经度","纬度","子网","分区","ESN","传输速率"])?;
sw.append_row(row![device_name[2].replace("_",""),"YES", "DBS5900_LampSite_5G","BTS3900_5900 V100R018C10SPC210","BTS5900 V100R018C10SPC210",device_name[2].replace("_",""),"SH-SH","10201","上海",gnodebid,"DBS5900_LampSite_BBU5900_VIRTUAL_NR_4T4R_32pRRU_SIMPTRANSMODE","NR_RADIO","=BBU策略!A2","源路由","MOCN",longitude[2].to_string(),latitude[2].to_string(),area[2].replace("局",""),blank!(2),"10G"])?;
sw.merge_cells((1,1),(5,1))?;
sw.merge_cells((6,1),(21,1))
}).expect("write excel error!");
//2、传输数据页签
let mut sheet = wb.create_sheet("传输数据页签");
wb.write_sheet(&mut sheet, |sheet_writer| {
let sw = sheet_writer;

let mut vlan:Vec<&str> =vlan[2].split(",").collect();
vlan.sort();
let mut ipv4_address:Vec<&str> =ipv4_address[2].split(",").collect();
ipv4_address.sort();
let mut ipv4_gateway:Vec<&str> =ipv4_gateway[2].split(",").collect();
ipv4_gateway.sort();
let mut ipv6_address:Vec<&str> =ipv6_address[2].split(",").collect();
ipv6_address.sort();
let mut ipv6_gateway:Vec<&str> =ipv6_gateway[2].split(",").collect();
ipv6_gateway.sort();

sw.append_row(row![(),"操作维护通道(IPV4/IPV6)",blank!(3),"主运营商业务通道(IPV6)",blank!(3),"从运营商业务通道(IPV6)",blank!(3)])?;
sw.append_row(row!["gNodeB名称","IP1","VLANID1","下一跳地址1","掩码/前缀1","IP2","VLANID2","下一跳地址2","前缀2","IP3","VLANID3","下一跳地址3","前缀3"])?;
sw.append_row(row![device_name[2].replace("_",""),ipv4_address[0],vlan[0],ipv4_gateway[0],"255.255.255.252",ipv6_address[1],vlan[0],ipv6_gateway[1],"126",ipv6_address[0],vlan[1],ipv6_gateway[0],"126"])?;
sw.merge_cells((2,1),(5,1))?;
sw.merge_cells((6,1),(9,1))?;
sw.merge_cells((10,1),(13,1))
}).expect("write excel error!");
//3、规划工参表
let mut sheet = wb.create_sheet("规划工参表");
for _ in 0..16{sheet.add_column(Column{ width: 8.1 });}
sheet.add_column(Column{ width: 18.1 });
wb.write_sheet(&mut sheet, |sheet_writer| {
let sw = sheet_writer;
let cell_name:String = hub_name[2].chars()
.map(|x| match x {
'_' => ' ',
'-' => ' ',
'#' => ' ',
'0'..='9' => ' ',
'a'..='z' => ' ',
'A'..='Z' => ' ',
_ => x ,
}).collect::<String>().trim().to_string();

let mut cudu_port =vec![];
for i in bbu_port.iter().unique() {cudu_port.push(i);}
if cudu_port[cudu_port.len()-1] == "1" {cudu_port.pop();}
sw.append_row(row!["5G"])?;
sw.merge_cells((1,1),(21,1))?;
sw.append_row(row!["gNodeB名称","运营商标识","小区名称","NR小区标识","NR DU小区标识","小区标识","物理小区标识","跟踪区域码","小区工作制式","频带","下行频点","下行带宽","时隙结构","时隙配比","CPRI压缩","SSB频点","SsbDescMethod","根序列索引","小区半径(米)","最大发射功率","小区收发模式","基带板槽号","NRDU小区模板","小区模板"])?;
for j in 0..=cudu_port.len()-3 {
sw.append_row(row![device_name[2].replace("_",""),"0&1",device_name[2][..11].to_owned()+&cell_name+&"-lampsite-3.5G_"+&(j+1).to_string(),(j+1).to_string(),(j+1).to_string(),(j+128).to_string(),
blank!(2),"CELL_TDD","N78","630000","CELL_BW_100M","SS104","7_3_DDDSUDDSUU","3DOT2_COMPRESSION","7783","SSB_DESC_TYPE_GSCN",blank!(1),"800","260","4T4R",cudu_port[j+2][..1].to_string(),"NR_DUCELL_SUB3G_TDD_100M_4T4R_LampSite_32pRRU_1","NR_CELL_SUB3G_TDD_100M_4T4R_LampSite_32pRRU_AM"])?;
}
sw.append_row(row!())
}).expect("write excel error!");
//4、新增RHUB信息
let mut sheet = wb.create_sheet("新增RHUB信息");
wb.write_sheet(&mut sheet, |sheet_writer| {
let sw = sheet_writer;
let mut hub_id_de =vec![];
let mut hub_name_de =vec![];
let mut temp =vec![];
let mut temps =vec![];
for i in 0..bbu_port.len(){
for j in 0..hub_coding.len(){
if bbu_port[i] == "1" && serial_number[i] == hub_coding[j] {
bbu_port[i] = bbu_port[j].to_string();
}
}
temps.push(format!("{}{}",bbu_port[i],hub_coding[i]));
}
for k in temps.iter().unique() { temp.push(k);}
for l in hub_id.iter().unique() { hub_id_de.push(l);}
for m in hub_name.iter().unique() { hub_name_de.push(m);}
let mut series =vec![];
let mut series_de =vec![];
let mut cascade =vec!["0";temp.len()-2];
for o in 2..temp.len(){series.push(&temp[o][..3])}
for p in series.iter().unique() { series_de.push(p);}
for q in temp.len()-(temp.len()-series_de.len())..cascade.len(){cascade[q]="1"}
sw.append_row(row!["gNodeB名称","基带板槽位","柜号","出纤端口","级数","框号","RHUB名称","RHUB链号"])?;
for n in 0..temp.len()-2{
sw.append_row(row![device_name[2].replace("_",""),temp[n+2][..1].to_owned(),"1",temp[n+2][2..3].to_owned(),cascade[n],hub_id_de[n+2].to_owned(),hub_name_de[n+2].to_owned(),temp[n+2][..3].replace(",","")])?;
}
sw.append_row(row!())
}).expect("write excel error!");
//5、新增pRRU信息
let mut sheet = wb.create_sheet("新增pRRU信息");
wb.write_sheet(&mut sheet, |sheet_writer| {
let sw = sheet_writer;

let mut prru_id_clone:Vec<i32> = vec![];
for p in 0..prru_id.len()-2{
prru_id_clone.push(prru_id[p+2].parse().unwrap());
}
for q in 0..prru_id_clone.len(){
if prru_id_clone[q] > 249 {prru_id_clone[q] = prru_id[q+2][1..].parse().unwrap()}
}
let mut cudu_port = vec![];
for j in bbu_port.iter().unique() { cudu_port.push(j)}
cudu_port.remove(0);
cudu_port.remove(0);
let mut map = HashMap::new();
for (k,v) in cudu_port.iter().enumerate(){ map.insert(k,v);}
let mut local_cell_id = bbu_port.clone();
local_cell_id.remove(0);
local_cell_id.remove(0);
for l in 0..map.len(){
for n in 0..local_cell_id.len(){
if local_cell_id[n] == map[&l].to_string() {local_cell_id[n]=(l+1).to_string()}
}
}
let cell_name:String = hub_name[2].chars()
.map(|x| match x {
'_' => ' ',
'-' => ' ',
'#' => ' ',
'0'..='9' => ' ',
'a'..='z' => ' ',
'A'..='Z' => ' ',
_ => x ,
}).collect::<String>().trim().to_string();
let mut hub_port_1:Vec<i32> = vec![];
for o in 0..hub_port.len()-2{
hub_port_1.push(hub_port[o+2][2..].parse().unwrap());
hub_port_1[o] =hub_port_1[o] -1;
}
sw.append_row(row!["gNodeB名称","NR DU小区标识","出纤RHUB柜号","pRRU柜号","出纤RHUB框号","出纤端口","级数","pRRU框号","pRRU链号","pRRU型号","pRRU名称","扇区设备编号","pRRU单双网线","pRRU配置速率","经度","纬度","物理站名"])?;
for m in 2..bbu_port.len(){
sw.append_row(row![device_name[2].replace("_",""),local_cell_id[m-2].to_string(),"1","0",hub_id[m].to_string(),hub_port_1[m-2].to_string(),"0",prru_id[m].to_string(),prru_id_clone[m-2].to_string(),"PRRU7221",prru_name[m].to_string(),prru_id[m].to_string(),"单","AUTO",longitude[2].to_string(),latitude[2].to_string(),&*cell_name])?;
}
sw.append_row(row!())
}).expect("write excel error!");
//6、pRRU型号信息
let mut sheet = wb.create_sheet("pRRU型号信息");
wb.write_sheet(&mut sheet, |sheet_writer| {
let sw = sheet_writer;
sw.append_row(row!["pRRU型号","频带","通道","物理通道数","pRRU制式"])?;
sw.append_row(row!["PRRU7221","N78","0","4","NO"])?;
sw.append_row(row!["PRRU7221","N78","1","4","NO"])?;
sw.append_row(row!["PRRU7221","N78","2","4","NO"])?;
sw.append_row(row!["PRRU7221","N78","3","4","NO"])?;
sw.append_row(row!["PRRU7223","N78","0","4","LN"])?;
sw.append_row(row!["PRRU7223","N78","1","4","LN"])?;
sw.append_row(row!["PRRU7223","N78","2","4","LN"])?;
sw.append_row(row!["PRRU7223","N78","3","4","LN"])
}).expect("write excel error!");
//7、运营商信息
let mut sheet = wb.create_sheet("运营商信息");
wb.write_sheet(&mut sheet, |sheet_writer| {
let sw = sheet_writer;
sw.append_row(row!["运营商类型","运营商标识","运营商名称","移动国家码","移动网络码"])?;
sw.append_row(row!["PRIMARY_OPERATOR","0","中国电信","460","11"])?;
sw.append_row(row!["SECONDARY_OPERATOR","1","中国联通","460","01"])
}).expect("write excel error!");

//8、BBU策略
let mut sheet = wb.create_sheet("BBU策略");
wb.write_sheet(&mut sheet, |sheet_writer| {
let sw = sheet_writer;
let mut cudu_port =vec![];
for i in bbu_port.iter().unique() { cudu_port.push(i);}
cudu_port.remove(0);
cudu_port.remove(0);

if cudu_port[cudu_port.len()-1] == "1" {cudu_port.pop();}
//cudu_port.remove(cudu_port.len()-1);
let mut slots:Vec<usize> =vec![];
let mut slot =vec![];
for j in 0..cudu_port.len() { slots.push(cudu_port[j][..1].parse().unwrap());}
for k in slots.iter().unique() { slot.push(k);}
let mut bbu_scene= "BBU".to_string();
for l in 0..slot.len(){bbu_scene += &slot[l].to_string();}
sw.append_row(row!["*BBU场景","*BBU机柜号","*BBU机框号","*BBU机框类型","*BBU槽位号","*单板类型"])?;
for m in 0..slot.len(){sw.append_row(row![&*bbu_scene,"0","0","BBU5900",slot[m].to_string(),"UBBP"])?;}
sw.append_row(row![&*bbu_scene,"0","0","BBU5900","7","UMPT"])?;
sw.append_row(row![&*bbu_scene,"0","0","BBU5900","19","UPEU"])?;
sw.append_row(row![&*bbu_scene,"0","0","BBU5900","16","FAN"])
}).expect("write excel error!");
//9、路由场景
let mut sheet = wb.create_sheet("路由场景");
wb.write_sheet(&mut sheet, |sheet_writer| {
let sw = sheet_writer;
sw.append_row(row!["场景名称","路由标识","目的地址","路由类型","前缀/掩码","下一跳对应关系"])
}).expect("write excel error!");
//10、主运营商核心网
let mut sheet = wb.create_sheet("主运营商核心网 ");
wb.write_sheet(&mut sheet, |sheet_writer| {
let sw = sheet_writer;
sw.append_row(row!["地市",blank!(3),"信令面",blank!(2)])?;
sw.append_row(row!["地市","NG标识","EPGROUP标识","SCTPPEER标识","CP_IP1","CP_IP2","CP_PN"])?;
sw.append_row(row!["上海","0","1","0","240e:186:c000:fe00::2","240e:186:c000:fe00::3","38412"])?;
sw.append_row(row!["上海","0","1","1","240e:186:c000:ff00::0","240e:186:c000:ff00::1","38412"])?;
sw.merge_cells((5,1),(7,1))
}).expect("write excel error!");
//11、策略定义
let mut sheet = wb.create_sheet("策略定义");
wb.write_sheet(&mut sheet, |sheet_writer| {
let sw = sheet_writer;
sw.append_row(row!["选项名称","选项取值","备注"])?;
sw.append_row(row!["VONR功能开关","1","0:不开通;1:开通"])
}).expect("write excel error!");
//12、从运营商核心网
let mut sheet = wb.create_sheet("从运营商核心网");
wb.write_sheet(&mut sheet, |sheet_writer| {
let sw = sheet_writer;
sw.append_row(row!["地市",blank!(3),"信令面",blank!(2)])?;
sw.append_row(row!["地市","NG标识","EPGROUP标识","SCTPPEER标识","CP_IP1","CP_IP2","CP_PN"])?;
sw.append_row(row!["上海","1","200","4","2408:8140:40F0:FF00:101:FF06::1","2408:8140:40F0:FF00:101:FF06::2","38412"])?;
sw.append_row(row!["上海","1","200","5","2408:8140:40F0:FF01:101:FF06::1","2408:8140:40F0:FF01:101:FF06::2","38412"])?;
sw.merge_cells((5,1),(7,1))
}).expect("write excel error!");
//13、U2000
let mut sheet = wb.create_sheet("U2000");
wb.write_sheet(&mut sheet, |sheet_writer| {
let sw = sheet_writer;
sw.append_row(row!["地市","OSS IP","OSS掩码"])?;
sw.append_row(row!["上海","7.65.13.132","255.255.255.128"])
}).expect("write excel error!");
//14、默认参数
let mut sheet = wb.create_sheet("默认参数");
wb.write_sheet(&mut sheet, |sheet_writer| {
let sw = sheet_writer;
sw.append_row(row!["Item","Value"])?;
sw.append_row(row!["NTP服务器地址(主用)","7.65.14.129"])?;
sw.append_row(row!["NTP服务器地址(备用)"])?;
sw.append_row(row!["主运营商NG本端端口","38412"])?;
sw.append_row(row!["主运营商NG本端端口","38412"])?;
sw.append_row(row!["从运营商NG本端端口","38422"])?;
sw.append_row(row!["从运营商XN本端端口","38422"])?;
sw.append_row(row!["是否配置1588V2时钟","否"])?;
sw.append_row(row!["INTERFACE起始标识","0"])?;
sw.append_row(row!["IP地址起始标识","0"])?;
sw.append_row(row!["源路由起始标识","0"])?;
sw.append_row(row!["主运营商NG_CPHOST_ID","1"])?;
sw.append_row(row!["主运营商NG_UPHOST_ID","1"])?;
sw.append_row(row!["主运营商XN_EPGROUP_ID","20"])?;
sw.append_row(row!["主运营商XN_CPHOST_ID","20"])?;
sw.append_row(row!["从运营商NG_CPHOST_ID","200"])?;
sw.append_row(row!["从运营商NG_UPHOST_ID","200"])?;
sw.append_row(row!["从运营商XN_EPGROUP_ID","300"])?;
sw.append_row(row!["从运营商XN_CPHOST_ID","300"])
}).expect("write excel error!");
//15、基线参数
let mut sheet = wb.create_sheet("基线参数");
wb.write_sheet(&mut sheet, |sheet_writer| {
let sw = sheet_writer;
sw.append_row(row!["MOC名称","MOC属性","基线值","筛选属性","KEY值"])?;
sw.append_row(row!["NRDUCellUeTimerConst","T304","MS2000"])?;
sw.append_row(row!["NRDUCellUeTimerConst","T300","MS1000"])?;
sw.append_row(row!["gNBPdcpParamGroup","DlPdcpDiscardTimer","INFINITY","PdcpParamGroupId","5"])?;
sw.append_row(row!["gNBPdcpParamGroup","UlPdcpDiscardTimer","INFINITY","PdcpParamGroupId","5"])?;
sw.append_row(row!["gNBPdcpParamGroup","gNBPdcpReorderingTimer","MS180","PdcpParamGroupId","5"])?;
sw.append_row(row!["gNBPdcpParamGroup","UePdcpReorderingTimer","MS180","PdcpParamGroupId","5"])?;
sw.append_row(row!["gNBPdcpParamGroup","DlDataPdcpSplitMode","SCG_ONLY","PdcpParamGroupId","5"])?;
sw.append_row(row!["gNBPdcpParamGroup","DlPdcpSnSize","BITS18","PdcpParamGroupId","5&6&7&8&9"])?;
sw.append_row(row!["gNBPdcpParamGroup","UlPdcpSnSize","BITS18","PdcpParamGroupId","5&6&7&8&9"])?;
sw.append_row(row!["gNBPdcpParamGroup","UlDataSplitPrimaryPath","SCG","PdcpParamGroupId","5"])?;
sw.append_row(row!["gNBPdcpParamGroup","UlDataSplitThreshold","INFINITY","PdcpParamGroupId","5"])?;
sw.append_row(row!["NTPCP","AUTHMODE","PLAIN"])?;
sw.append_row(row!["TASM","MODE","MANUAL"])?;
sw.append_row(row!["TASM","CLKSRC","GNSS"])?;
sw.append_row(row!["TASM","SRCNO","0"])?;
sw.append_row(row!["NRDUCellAlgoSwitch","SymbolShutdownSwitch","ON",blank!(2),"20220507"])?;
sw.append_row(row!["GNBRSVD","RsvdSwParam0","RSVDSWPARAM0_BIT16-0",blank!(2),"20220329"])?;
sw.append_row(row!["NRCellAlgoSwitch","NetworkSliceAlgoSwitch","ADMISSION_BASED_ON_NS_ID_SW-0&ENHANCED_NETWORKSLICE_SW-0",blank!(2),"20220722"])?;
sw.append_row(row!["gNBConnStateTimer","InitContextSetupReqWaitTmr","20",blank!(2),"20220906"])?;
sw.append_row(row!["GPS","MODE","BDS/GPS"])?;
sw.append_row(row!["GTPU","STATICCHK","ENABLE"])?;
sw.append_row(row!["GNBCUNG","CuNgType","DEFAULT_CP_UP"])?;
sw.append_row(row!["gNBXnSonConfig","XnSonConfigSwitch","XN_SON_DYN_BLACKLIST_SW-1"])?;
sw.append_row(row!["gNBXnSonConfig","XnSonDeleteTimerForXnFault","1440"])?;
sw.append_row(row!["gNBXnSonConfig","XnSonDeleteTimerForXnUsage","10080",blank!(2),"新建站风险规避措施"])
}).expect("write excel error!");
wb.close().expect("close excel error!");
{
//工作簿二:上海电信现网SA切片改造
let mut wb1 = Workbook::create("./上海电信现网SA切片改造.xlsx");
//1、Auto Deployment
let mut sheet1 = wb1.create_sheet("Auto Deployment");
wb1.write_sheet(&mut sheet1, |sheet_writer| {
let sw1 = sheet_writer;
sw1.append_row(row!["PnP Parameters"])?;
sw1.merge_cells((1,1),(9,1))?;
sw1.append_row(row!["*Name","*ESN","Sub Network","*Sub Area","*Software Version","Cold Patch Version","Hot Patch Version","*Connection Type","Authentication Type"])?;
sw1.append_row(row![device_name[2].replace("_",""),blank!(1),area[2].replace("局",""),blank!(1),"BTS3900_5900 V100R018C10SPC210",blank!(2),"SSL","匿名认证"])
}).expect("write excel error!");
//2、站点列表
let mut sheet1 = wb1.create_sheet("站点列表");
wb1.write_sheet(&mut sheet1, |sheet_writer| {
let sw1 = sheet_writer;
sw1.append_row(row!["*网元名称","*DO","是否配置切片","联通MME名称"])?;
sw1.append_row(row![device_name[2].replace("_",""),"YES","是","上海"])
}).expect("write excel error!");
//3、切片配置
let mut sheet1 = wb1.create_sheet("切片配置");
wb1.write_sheet(&mut sheet1, |sheet_writer| {
let sw1 = sheet_writer;
sw1.append_row(row!["*运营商","*NG类型","*切片业务类型","*切片区分标识","切片信息描述"])?;
sw1.append_row(row!["主运营商","2C","1","0","电信_2C"])?;
sw1.append_row(row!["主运营商","2C","1","262144","电信_2B"])?;
sw1.append_row(row!["主运营商","2C","1","524288","电信优享&尊享"])?;
sw1.append_row(row!["从运营商","2C","1","0","联通_2C"])?;
sw1.append_row(row!["从运营商","2B","1","4194304","联通_2B"])?;
sw1.append_row(row!["从运营商","2B","1","4194305","联通优享&尊享"])
}).expect("write excel error!");
//4、新增联通NG对端
let mut sheet1 = wb1.create_sheet("新增联通NG对端");
wb1.write_sheet(&mut sheet1, |sheet_writer| {
let sw1 = sheet_writer;
sw1.append_row(row!["*MME Pool名称","*NG标识","*EPGROUP标识","*SCTPPEER标识","*IP1","*IP2","*对端PN","NG类型","用户标签"])?;
sw1.append_row(row!["上海","2","600","2","2408:8140:40F0:FF00:102:FF06::1","2408:8140:40F0:FF00:102:FF06::2","38412","DEFAULT_CP_UP","联通2B物网默认切片"])?;
sw1.append_row(row!["上海","2","600","3","2408:8140:40F0:FF01:102:FF06::1","2408:8140:40F0:FF01:102:FF06::2","38412","DEFAULT_CP_UP","联通2B物网默认切片"])
}).expect("write excel error!");
//5、基线参数
let mut sheet1 = wb1.create_sheet("基线参数");
wb1.write_sheet(&mut sheet1, |sheet_writer| {
let sw1 = sheet_writer;
sw1.append_row(row!["MOC名称","MOC属性","基线值","筛选属性","KEY值"])
}).expect("write excel error!");
wb1.close().expect("close excel error!");
}
println!("Mission {} completed successfully!\n\n共用时(毫秒):{:?}\n\nPress Enter to end......",device_name[2].replace("_",""),start.elapsed());
let mut args = String::new();
std::io::stdin().read_line(&mut args).unwrap();
}

posted @ 2021-12-07 10:00  aimoss  阅读(396)  评论(0)    收藏  举报