簡體   English   中英

使用Win32 :: OLE Perl模塊將Excel中的一系列單元格保存為HTML

[英]Saving a range of Cells in Excel as HTML using Win32::OLE Perl module

我想使用Perl腳本將XLS表格中的一系列單元格保存為HTML文件。 我搜索了解決這個問題的方法。 但還沒找到。

但是,使用Excel VBA有一個類似的解決方案:

With ActiveWorkbook.PublishObjects.Add(xlSourceRange, _
"C:\Documents and Settings\Tim\Desktop\Page.htm", _
Selection.Parent.Name, _
Selection.Address(), _
xlHtmlStatic, "divExcelExport", _
"TestTitle")
.Publish (True)
.AutoRepublish = False
End With

所以,我嘗試將其轉換為Perl代碼,但它給了我以下錯誤:

H:\\ test_code \\ data> perl a.pl Win32 :: OLE(0.1702)錯誤0x800a03ec在METHOD / PROPERTYGET中“添加”H:\\ test_code \\ data>

use strict;
use warnings "all";
use Win32::OLE;
my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || 
            Win32::OLE->new('Excel.Application','Quit');
my $Book = $Excel->Workbooks->Open("H:\\test_code\\data\\test.xls");
my $Sheet = $Book->Worksheets(1);
$Book->PublishObjects->Add({SourceType=>5, # int value for xlSourceRange
                            FileName => "H:\\test_code\\data\\test2.html",
                            Source => $Sheet->Range("A1:B2")->Address,
                            HtmlType => 0, # xlHtmlStatic s int value.
                           });
print Win32::OLE->LastError();
$Book->Close(0);
exit();

有人可以為這個問題建議一個解決方案。

請注意,我想保留列的所有格式,(十進制,位數,$符號,顏色等..)。 任何不涉及使用商業圖書館的解決方案都是值得贊賞的。

謝謝,Rizwan。

這對我有用,至少生成HTML文件:

use strict; use warnings;
use Win32::OLE;
use Win32::OLE::Const 'Microsoft Excel';

my $Excel = Win32::OLE->new('Excel.Application','Quit');
my $Book  = $Excel->Workbooks->Open("C:\\test.xls");
$Book->PublishObjects->Add(xlSourceRange,
    "C:\\output_file.htm", 'Sheet1', '$C$3:$C$10', xlHtmlStatic
)->Publish(1);
$Book->Close(0);
$Excel->Quit;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM