区分worksheet

区分worksheet

我想将文本写到excel的不同的worksheet中

我的excel文件名为a.csv

我将1,2,3,4写在a.csv中的worksheet1
5,6,7,8写在a.csv 中的worksheet1,怎么来区分worksheet?
你是打算按照excel格式来处理还是打算按照csv格式来处理。
按照excel格式处理的话,需要使用dsheet::SimpleExcel 等module, 可以添加worksheet.
如果按照csv格式处理,本身是文本格式,无法使用worksheet
可是我使用的是csv,如果使用的是csv,但是默认插入的就是csv的name为worksheet
CSV怎么生成的?也是用perl生成的csv?
csv本身是文本格式的,不含其他格式描述符,worksheet的信息无法在csv中描述。
你可以用文本编辑器打开CSV文件看看

那我现在用xls,
现在怎么修改worksheet的名字啊
你用什么module写excel? 如果是用 Spreadsheet::SimpleExcel
# add worksheets
  $excel->add_worksheet('Name of Worksheet',{-headers => \@header, -data => \@data});
  $excel->add_worksheet('Second Worksheet',{-data => \@data});
  $excel->add_worksheet('Test'
我安装是
ActivePerl-5.8.8.820-MSWin32-x86-274739.

好象只能是use Win32::OLE;
装Spreedsheet::WriteExcel

add worksheet时指定名字

write时可切换
用Win32::OLE ,也可以添加worksheet, 看看下面代码

use Win32::OLE;

        # use existing instance if Excel is already running

        eval {$ex = Win32::OLE->GetActiveObject('Excel.Application')};
        die "Excel not installed" if $@;
        unless (defined $ex) {
            $ex = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;})
                    or die "Oops, cannot start Excel";
        }

        # get a new workbook

        $book = $ex->Workbooks->Add;

        # write to a particular cell

        $sheet = $book->Worksheets(1);
        $sheet->Cells(1,1)->{Value} = "foo";

        # write a 2 rows by 3 columns range

        $sheet->Range("A8:C9")->{Value} = [[ undef, 'Xyzzy', 'Plugh' ],
                                           [ 42,    'Perl',  3.1415  ]];

        # print "XyzzyPerl"

        $array = $sheet->Range("A8:C9")->{Value};
        for (@$array) {
            for (@$_) {
                print defined($_) ? "$_|" : "<undef>|";
            }
            print "\n";
        }

        # save and exit

        $book->SaveAs( 'test.xls' );
        undef $book;
        undef $ex;