You are here: Re: PHP COM Excel Obj « PHP Programming Language « IT news, forums, messages
Re: PHP COM Excel Obj

Posted by krigare on 06/01/06 23:56

>
>
> This is probably more of an MSExcel question, but I suppose it
> overlaps...
>
> xlEdgeTop, xlContinuous are VBA constants, and you used them correctly
> in your PERL sample. You are using them incorrectly in your PHP sample.
> Correcting other typos (so I assume this is not a cut-and-paste from
> the actual code - tut tut!)
>
> $worksheet->Range($range)->Borders()->LineStyle = xlContinuous;
>
> This assumes you have previously DEFINEd xlEdgeTop and xlContinuous
> somewhere, such as:
>
> ' XlBordersIndex enumerated constants
> DEFINE( "xlEdgeTop", 8 );
> ' XlLineStyle enumerated constants
> DEFINE( "xlContinuous", 1 );
>
> ---
> Steve
>

Thanks Steve!! That got me pointed in the right direction. I now have
things working properly. Here is an example code in case anyone is
curious. I had to look at the PERL again to see how the hash was setup
when setting the LineStyle. Once I got that syntax correct in PHP and
got the Constants defined, worked like a charm.

Thanks again!

<?php

// Example in using Excel COM Object

//Set this to where you wish to save
$xl_file = "c:/tmp/my_test.xls";

//Create new object
$XL = new COM("Excel.application") or Die ("Could not connect to Excel");

//Ignore Alerts
$XL->DisplayAlerts = 0;

//Make Excel Visible
$XL->Visible = 1;

//Create a new workbook
$WB = $XL->Workbooks->Add;

//Go to worksheet number 1
$WS = $WB->Worksheets(1);

//Make sure that worksheet is active
$WS->activate;

//Give the worksheet name
$WS->Name = "My Test";

// XlBordersIndex
DEFINE("xlEdgeTop" , 8);
DEFINE("xlEdgeBottom" , 9);
DEFINE("xlEdgeRight" , 10);
DEFINE("xlEdgeLeft" , 7);
DEFINE("xlDiagonalUp" , 6);
DEFINE("xlDiagonalDown" , 5);
DEFINE("xlInsideHorizontal", 12);
DEFINE("xlInsideVertical" , 11);

// XlLineStyle
DEFINE("xlContinuous", 1);
DEFINE("xlDash", -4115);
DEFINE("xlDot", -4118);
DEFINE("xlDashDot", 4);
DEFINE("xlDashDotDot", 5);
DEFINE("xlDouble", -4119);
DEFINE("xlSlantDashDot", 13);
DEFINE("xlLineStyleNone", -4142);

// XlBorderWeight
DEFINE("xlHaireline", 1);
DEFINE("xlMedium" , -4138);
DEFINE("xlThick" , 4);
DEFINE("xlThin" , 2);

// XlVAlign
DEFINE("xlVAlignBottom" , -4107);
DEFINE("xlVAlignCenter" , -4108);
DEFINE("xlVAlignDistributed", -4117);
DEFINE("xlVAlignJustify" , -4130);
DEFINE("xlVAlignTop" , -4160);

// Range/Column data alignment
DEFINE("xlLeft", 2);
DEFINE("xlCenter", 3);
DEFINE("xlRight", 4);

$cells = array("B2","D2","F2","H2","B4","D4","F4","H4");
$cell_data = array("Continuous","Dash","DashDot","DashDotDot",

"Dot","Double","SlantDashDot","None");
$cell_line = array(xlContinuous,xlDash,xlDashDot,xlDashDotDot,

xlDot,xlDouble,xlSlantDashDot,xlLineStyleNone);
$cell_border = array(xlEdgeTop, xlEdgeBottom, xlEdgeRight, xlEdgeLeft);

for ($i=0; $i<count($cells); $i++)
{
$cell = $WS->Range($cells[$i]);
$cell->activate;
$cell->Value = $cell_data[$i];
$cell->Interior->ColorIndex = "36";
$cell->Font->FontStyle = "Bold";
foreach ($cell_border as $cb)
{
$WS->Range($cells[$i])->Borders($cb)->LineStyle =
$cell_line[$i];
}
}

//Adjust column widths
$WS->Columns("A:H")->AutoFit;

//Cell data is considered text not numeric
$WS->Columns("A:H")->NumberFormat = "@";

//Center cell data for columns
$WS->Columns("A:H")->HorizontalAlignment = xlCenter;

//Save your new excel file
$XL->ActiveWorkbook->SaveAs($xl_file);

//Clean up and close, quit, release
$WB->Close;
unset($WS);
unset($wB);
$XL->Workbooks->Close();
$XL->Quit();
unset($XL);

?>

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация