想把每批次的结果出一个最终的Excel文档
use Excel::Writer::XLSX;
use Encode; #为了支持中文字符
sub H{ #把每个需要填充的内容都转码,推荐 utf-8
my $text = shift;
return decode('utf-8',$text);
}
my $out="$dir/肿瘤分析结果_20$date\.xlsx";
my $workbook = Excel::Writer::XLSX->new ( $out);#新建一个工作簿
my $basic_stat_sheet = $workbook->add_worksheet("basic_stat");#新建一个工作表
my @header=('sampleID','sampleIndex','sampleName','raw','clean','ratio','Q20','Q30','PCT_PF_UQ_READS_ALIGNED','MEAN_BAIT_COVERAGE','PCT_SELECTED_BASES','PCT_>STD','PCT_0.5X-2X_MEAN','gender','projectType','panel','disease');
$basic_stat_sheet->write('A1',\@header); #在第一行里写入header,这里一定要加\
$basic_stat_sheet->write($row,$i,H($samples{$s}{"$header[$i]"}));#在第$row行第$i列写入$samples{$s}{"$header[$i]"},这里是已经转码的
$mutations->write("A$row",\@new);#在第$row行,写入一个数组
$workbook->close(); #最后close工作簿
如果用python的话,就用pandas模块:
import pandas as pd
from pandas import DataFrame
writer = pd.ExcelWriter(f"肿瘤分析结果_20{date}.xlsx")
df1 = DataFrame()
df1.to_excel(writer, sheet_name='basic_stat',index=False,header=True)
writer.save()
#如果要读取一个Excel文件:
df = pd.read_excel(samplexls, sheet_name=0, header=None)# sheet0内容就读到了df数据框
for a in range(0,len(df)):
lines = df.loc[a].values.tolist() #每行的内容就在lines里
#其他处理
以上只贴了相关的几句代码。
网友评论