2011-08-15 1 views
2

私はperl OLEオートメーションで編集中のExcel文書を持っており、問題が発生しました。すでにデータが入っている2つの行の間に空行を入力する必要があります。ファイルの末尾には追加しません。私はperlを使ってファイル全体を書き直す必要もありません。これをどうやってやりますか?Excel文書に空行を挿入する

おかげで、私はPerlの&のWin32を使用してExcelを自動化していたときいつも私を助け

+4

http://www.perlmonks.org/?node_id=882700 – atrain

+0

ありがとうございました。それはうまくいきました。これを答えに入れませんか? – Shahab

+2

私は本当にその質問に答えなかったので。私はちょうどそのページを見つけました。 – atrain

答えて

0

一つのこと:: OLEは、私が最初に達成しようとしています正確に何をキャプチャするExcelのマクロを作成することです。そこから私はVBコードを見ることができ、通常は比較的簡単にPerlに変換します。例えば

、オープンエクセル2010ファイル内:

  1. 表示 - >マクロ - OK>新しいマクロの記録
  2. クリック
  3. 右に新しい行を挿入するために、シート上のどこかをクリックし
  4. 表示 - >マクロ - >記録停止
  5. 表示 - >マクロ - >ビューマクロは、編集をクリックし
このことから

、私はコードを書くことができ、例えば:

#!c:/perl/bin/perl.exe 

use strict; 
use warnings; 

use Win32::OLE; 

my $excel = Win32::OLE->new('Excel.Application') 
    or die "Could Not Start Excel.\n"; 
$excel->{ 'Visible' }   = 1; 
$excel->{ DisplayAlerts }  = 0; 
$excel->{ SheetsInNewWorkBook } = 1; 
my $workbook = $excel->Workbooks->Add; 
my $sheet = $workbook->Sheets(1); 

$sheet->Range('A1')->{ Value } = 'Data 1'; 
$sheet->Range('A2')->{ Value } = 'Data 2'; 
$sheet->Range('2:2')->Select(); #Select Entire 2nd Row 
$sheet->Range('2:2')->Insert({ 
    'Shift'  => -4121, #xlDown 
    'CopyOrigin' => 0,  #xlFormatFromLeftOrAbove 
}); 

__END__ 

はまた、ここではExcelの列挙の束のリストは、次のとおりです。http://www.datapigtechnologies.com/downloads/Excel_Enumerations.txt

は、この情報がお役に立てば幸い!

関連する問題