免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2356 | 回复: 0
打印 上一主题 下一主题

perl 写表格到excel,实现动态sheet个数和内容 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-04 23:34 |只看该作者 |倒序浏览
文件sn内容为:
Warning:jlfjalkjfldajflk(UID-346)
Warning:jlfjalkjfldajflk(UID-376)
Warning:jlfjalkjfldajflk(UID-34
Warning:jlfjalkjfldajflk(UID-346)
Warning:jlfjalkjfldajflk(UID-376)
Warning:jlfjalkjfldajflk(UID-34

想每个UID类型写到一个sheet里,然后在读去每行是判断什么类型的,写到相应的sheet里,每判断一行,相应的sheet里多一行这个warning;
在实现时,遇到问题:Can't call method "write" without a package or object reference at excel.pl line 91, <IN> line 4.
主体程序段如下:各位帮忙看下,谢谢
open IN,"sn"||die "can not open the file $!\n";
while (<IN> {
    if ($_ =~ /(Warning:.*\((\S+)\))/) {
        $type = $2;
        $content = $1;
        $hash->{$type}->{$type}    = $type;
        $hash->{$type}->{$content} = $content;
        for ($m =0,$m <=$#type,$m++) {
            if($type[$j] eq $hash->{$type}->{$type}) {
                $new_flag = 1;
                last;
            }
            else {
                $new_flag = 0;
                print "bbbbbbbbbb\n";
            }
        }
        if (!($new_flag)) {
            $type[$k] = $hash->{$type}->{$type} ;
            $hash->{$type}->{$type}->{number} =1;
            $worksheetno   = '$worksheet'.$k;
            ${worksheetno} = $workbook->add_worksheet("$type[$k]";
            $worksheetno->write("B2", "$hash->{$type}->{$content}";
            $worksheetno->write("C2", "$hash->{$type}->{$type}->{number}";
            $count++;
            $k++;
        }
        else {
            $hash->{$type}->{$type}->{number} ++;
            $worksheetno   = '$worksheet'.$m;
            $rowno  = $hash->{$type}->{$type}->{number};
            $worksheetno->write("B2", "aa";
        }
    }
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP