#foreach Cell In [A1:Z100]
# If Cell.Borders(xlEdgeTop).ColorIndex = xlAutomatic Then Cell.Borders(xlEdgeTop).ColorIndex = 2
# If Cell.Borders(xlEdgeBottom).ColorIndex = xlAutomatic Then Cell.Borders(xlEdgeBottom).ColorIndex = 2
# If Cell.Borders(xlEdgeRight).ColorIndex = xlAutomatic Then Cell.Borders(xlEdgeRight).ColorIndex = 2
# If Cell.Borders(xlEdgeLeft).ColorIndex = xlAutomatic Then Cell.Borders(xlEdgeLeft).ColorIndex = 2
#Next Cel
#my @edges = qw (xlInsideHorizontal xlInsideVertical);
#$range = "b2:r2000";
#foreach my $edge (@edges)
#{
# with (my $Borders = $Sheet->Range($range)->Borders(eval($edge)),
# LineStyle =>xlContinuous,
# Weight => xlThin ,
# ColorIndex => 1);
#
Thursday, 6 February 2014
Wednesday, 5 February 2014
Perl win32 ole Excel
PerlからExcelを扱う
- PerlからExcelを扱う
- Excelのカラーリング
- マクロの見かた
PerlからExcelを扱う
use Win32::OLE を使うと Perl から Excel を使うことができます。 これは OLE という技巧で別に Excel だけでなく Wordなどでも使用することができます。#!/usr/bin/perl
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
# エクセルオブジェクトを取得
my $excel = Win32::OLE->GetActiveObject('Excel.Application')
|| die "cannot get active excel!";
# ファイルを開く
#my $book = $excel->Workbooks->Open( $filename );
# ブックを追加する
my $book = $excel->Workbooks->add() ;
#シートを取得する
my $sheet = $book->ActiveSheet;
# モノを書き込む
$sheet->Range("B1")->{Value} = "OLE Sample" ;
#データを取得する(配列)
my $data = $sheet->Range("B1")->{Value};
print "(" . $data . ")\r\n";
#データを取得する(配列)
my $array = $sheet->Range("A1:C1")->{Value};
print "(" . $$array[0][1] . ")\r\n"; # @@$arrayの2次元配列
#セルの色を指定する(単体)
$sheet->Range("A1")->Interior->{ColorIndex} = 6;
#セルの色を指定する(範囲)
$sheet->Range("A8:G8")->Interior->{ColorIndex} = 6;
#線を引く
#Const xlContinuous = 1;
$sheet->Range("C2")->Borders(xlDiagonalUp)->{LineStyle} = 1;
$sheet->Range("C3")->Borders(xlDiagonalDown)->{LineStyle} = 1;
$sheet->Range("C4")->Borders(xlEdgeLeft)->{LineStyle} = 1;
$sheet->Range("C5")->Borders(xlEdgeRight)->{LineStyle} = 1;
$sheet->Range("C6")->Borders(xlEdgeTop)->{LineStyle} = 1;
$sheet->Range("C7")->Borders(xlEdgeBottom)->{LineStyle} = 1;
#縦列の幅を変える
$sheet->Columns("A:A")->{ColumnWidth} = 4.00;
#折り返しを有効にする
$sheet->Range("A1")->{WrapText} = 1;
#ブックを閉じる
#$book->Close() ;
#エクセルを閉じる
#$excel->quit() ;
#
上記のスクリプトの結果は以下のような感じです。Excelのカラーリング
上記で出てくるColorIndex は以下のところによると、以下のサイトのような感じになります。http://www.relief.jp/itnote/archives/000482.php
簡単にこっちでもつくってみました。
#!/usr/bin/perl
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
# エクセルオブジェクトを取得
$excel = Win32::OLE->GetActiveObject('Excel.Application')
|| die "cannot get active excel!";
# ブックを追加する
$book = $excel->Workbooks->add() ;
#シートを取得する
$sheet = $book->ActiveSheet;
@work = ("A","B","C","D","E","F","G","H","I","J");
$i = 1;
for ($k = 1 ; $k <= 7 ; $k++ ) {
for ($j = 0 ; $j < 8 ; $j++) {
$cell = $work[$j] . $k;
$sheet->Range($cell)->{Value} = $i;
$sheet->Range($cell)->Interior->{ColorIndex} = $i;
$i++;
}
}
#
マクロの見かた
PerlでExcelのコマンドで細かい動作を どうやって知るかですが、簡単なのはExcelのマクロを作って それのVB編集スクリプトを眺めてみることです。Excelのメニューバーから、ツール→マクロ→ 新しいマクロの記録、と選択してマクロの記録を開始します。
ここでいろいろ操作を行い、 マクロを停止させるとマクロが作成されます。
そのマクロをExcelのメニューバーから ツール→マクロ→マクロ、と選択しVBマクロの編集を選択すれば、 なにをやれば良いかだいたいわかります。
起源| ソース |Source : http://park.ruru.ne.jp/ando/work/perlTips/excel_ja.html
男的看一看,女的學一學
非常讚賞鳳凰衛視美女主持沈星接受記者採訪時說的這句話:一個男人最高的品味就是他選擇的女人。一個男人的房子、車子、打火機、西裝,當然都可以成為他品味的一部分,但最本質、最真實表現一個男人品味的是他選擇什麼樣的女人。
選擇了什麼樣的女人就等於選擇了什麼樣的人生。俗話說,男怕入錯行,女怕嫁錯郎,男人何嘗不是。寫《菜根譚》的洪應明就說過“悍妻詬誶,真不若耳聾也!” 濃妖不及淡久,婚姻也是這樣。大文豪莎士比亞一生寫下了眾多精彩的戲劇,但是他的婚姻觀卻沒有任何浪漫色彩。因為他明悉婚姻道路的艱難,更瞭解生活會耗損愛情。
人活這一輩子,究竟有什麼是我們必須要的?真正需要的就是良好的心態和閒適的心情。只有家庭和睦,心態健康的人,才具備閒適的條件。比如娶一個好女人,就能賦予一個男人閒適的心情。那麼,應該娶一個怎樣的女人才能算是有最高的品味呢?
1、一個女人最重要的品質應該是善良,而且百善孝為先。天下不知道有多少苦命的男人在受著自己的老婆和自己親媽之間的夾板氣? 其實處理好和長輩的關係不是孝字那麼簡單,裡面有很多技巧和性格的問題。
2、賢慧,這是千古不變的女性美德。說的具體一點,就是要能做飯、洗衣、照顧家人。即使家裡有錢請保姆,也需要一個女主人來張羅打點一切。
3、知書達禮。這是新時代對女人與時俱進的要求。一個女人的氣質和教養是豐富內心的流露,也是與別人真正拉開距離的所在。
4、有思想、有品位。有思想使得她不屑於插足別人之間的閒話,她從來都是個“絕緣體”。有品位,使得她能匠心獨具地表達自己的風格。
5、懂事。對於男人最重要的是尊嚴,她可以在家裡抨擊我,但不能在公眾場合諷刺、嘲笑我。一個不懂維護丈夫尊嚴的女人,是很愚蠢的女人。
6、充分信任,相對自由。喜新厭舊其實是人的本能,誰也不能保證一輩子隻對一個人有好感。奉勸天下所有將要結婚的女人用心學習《醫學心理學》,充分理解自己的丈夫喜歡在畫報、網頁上凝眸美女的嗜好,不要因為這些下意識的行為而吹毛求疵,否則就是將婚姻推向死亡。他想獨自呆一會兒,不要碎嘴地問什麼究竟,應該送上一杯茶,輕輕把門關上就好了。
7、有一份穩定的收入。不依附于男人生存的女人才能做到獨立,自尊。很贊同。
8、沒有過多的物質欲望。我希望我的老婆應該是那種寶馬汽車坐得,自行車也能騎得,五星級酒店住得,野營的帳篷也不嫌棄,吃得苦中苦,方為人上人。
9、天真有一點童趣。一個男人若是真的喜歡一個女人,就應該最大程度地呵護她的純真。未失童趣的女子,能讓漫長枯燥的四目相對,其樂無窮。
10、喜歡讀書和音樂。喜歡讀書不是看什麼花花綠綠的時尚雜誌、喜歡音樂也不是什麼聽過就忘的流行小曲。經典的書籍和音樂能讓歲月與生活的瑣碎無法在她的心靈上烙下痕跡。
11、工作能力強,有一技之長。工作中的女人顯然沒有太多時間疑神疑鬼。有一技之長會使她自得其樂,很好地控制情緒。只要有一定的秉賦加勤奮,這不是問題。倒是要有一種教育的天分,能把孩子教好,似乎更重要。
12、有一點浪漫。婚姻生活是一個有顏色、有生息、有動靜的世界,很難想像一個不具備浪漫、不具備情趣的女人是個好妻子。
以上12條標準,應該齊了。擁有這樣的女子,縱使太陽和星月都冷了,群山草木都衰盡了,婚姻的光芒還能在記憶的最初,在任何可見和不可知的角落,溫暖的燃燒著……
二 [ 別說你單純,現在教你認人]
1 . 看一個男人的品位,要看他的鞋子。
2. 看一個女人是否有內涵,要看她的走姿。
3 . 看一個人的氣血,要看他的頭髮。
4 . 看一個人的心術,要看他的眼神。
5 . 看一個人的身價,要看他的對手。
6 . 看一個人的底牌,要看他身邊的好友。
7 . 看一個人的性格,要看他的字寫得怎樣。
8 . 看一個人是否快樂,不要看笑容,要看清晨夢醒時的一刹表情。
9 . 看一個人的胸襟,要看他如何面對失敗及被人出賣。
10. 看兩個人的關係,要看發生意外時,另一方的緊張程度。
11. 如果你想知道一個人是不是真的愛你,那要看他是不是在開心的時候想到你,而不是悲傷的時候。
12. 如果你想知道一個人是不是你的知己,那要看他是否和你心有靈犀,而不是要你什麼都告訴他。
13. 如果你想知道一個人是不是你真正的朋友,那要看他在你危難的時候,會不會為你兩肋插刀,而不是天天和你一起吃吃喝喝。
14. 如果你想知道一個人是否有愛心,那要看他是否喜歡小動物。
15. 如果你想知道一個人是否有修養,那要看他在公車上會不會為老人,兒童讓座位。
16. 如果你想知道是否有素質,那要看他是不是愛貪小便宜。
17. 如果你想知道一個人是否有心胸,那要看他是否在背後壞別人。
18. 如果你想知道一個人是否在說謊,那你要看他在說話時的眼神,眼神告訴你一切。
19. 如果你想知道一個人是否在乎你,那你要看他是否記住你曾經說過的話。
20. 如果你想知道一個人是否牽掛你,那要看他在天涼的時候是否想到提醒你加衣。
21. 如果你想知道你在那個人心中的分量如何,那要看他是否記住你的生日或紀念日.。
22. 如果想知道一個男人是否講究,那要看他的鞋子是否乾淨.。
23. 如果你想知道一個男人是否值得你去愛,那要看他是否有愛心,責任心,而不是有沒有地位和金錢.。
24. 如果你想知道一個男生是否值得你去愛,那要看他的內在,而不是外表,要看他是不是因為帥而可愛,而不是因為可愛而帥。
女生也應該:
急事,慢慢的說;
大事,清楚的說;
小事,幽默的說;
沒把握的事,謹慎的說;
沒發生的事,不要胡說;
做不到的事,別亂說;
傷害人的事,不能說;
討厭的事,對事不對人的說;
開心的事,看場合說;
傷心的事,不要見人就說;
別人的事,小心的說;
自己的事,聽聽自己的心怎麼說;
現在的事,做了再說;
未來的事,未來再說;
知人不必言盡,留三分餘地與人,留些口德與己。
責人不必苛盡,留三分餘地與人,留些肚量與己。
才能不必傲盡,留三分餘地與人,留些內涵與己。
鋒芒不必露盡,留三分餘地與人,留些深斂與己。
有功不必邀盡,留三分餘地與人,留些謙讓與己。
得理不必搶盡,留三分餘地與人,留些寬和與己。
source : http://www.post852.com/妻子決定你未來事業的高度,男的看一看,女的學/
選擇了什麼樣的女人就等於選擇了什麼樣的人生。俗話說,男怕入錯行,女怕嫁錯郎,男人何嘗不是。寫《菜根譚》的洪應明就說過“悍妻詬誶,真不若耳聾也!” 濃妖不及淡久,婚姻也是這樣。大文豪莎士比亞一生寫下了眾多精彩的戲劇,但是他的婚姻觀卻沒有任何浪漫色彩。因為他明悉婚姻道路的艱難,更瞭解生活會耗損愛情。
人活這一輩子,究竟有什麼是我們必須要的?真正需要的就是良好的心態和閒適的心情。只有家庭和睦,心態健康的人,才具備閒適的條件。比如娶一個好女人,就能賦予一個男人閒適的心情。那麼,應該娶一個怎樣的女人才能算是有最高的品味呢?
1、一個女人最重要的品質應該是善良,而且百善孝為先。天下不知道有多少苦命的男人在受著自己的老婆和自己親媽之間的夾板氣? 其實處理好和長輩的關係不是孝字那麼簡單,裡面有很多技巧和性格的問題。
2、賢慧,這是千古不變的女性美德。說的具體一點,就是要能做飯、洗衣、照顧家人。即使家裡有錢請保姆,也需要一個女主人來張羅打點一切。
3、知書達禮。這是新時代對女人與時俱進的要求。一個女人的氣質和教養是豐富內心的流露,也是與別人真正拉開距離的所在。
4、有思想、有品位。有思想使得她不屑於插足別人之間的閒話,她從來都是個“絕緣體”。有品位,使得她能匠心獨具地表達自己的風格。
5、懂事。對於男人最重要的是尊嚴,她可以在家裡抨擊我,但不能在公眾場合諷刺、嘲笑我。一個不懂維護丈夫尊嚴的女人,是很愚蠢的女人。
6、充分信任,相對自由。喜新厭舊其實是人的本能,誰也不能保證一輩子隻對一個人有好感。奉勸天下所有將要結婚的女人用心學習《醫學心理學》,充分理解自己的丈夫喜歡在畫報、網頁上凝眸美女的嗜好,不要因為這些下意識的行為而吹毛求疵,否則就是將婚姻推向死亡。他想獨自呆一會兒,不要碎嘴地問什麼究竟,應該送上一杯茶,輕輕把門關上就好了。
7、有一份穩定的收入。不依附于男人生存的女人才能做到獨立,自尊。很贊同。
8、沒有過多的物質欲望。我希望我的老婆應該是那種寶馬汽車坐得,自行車也能騎得,五星級酒店住得,野營的帳篷也不嫌棄,吃得苦中苦,方為人上人。
9、天真有一點童趣。一個男人若是真的喜歡一個女人,就應該最大程度地呵護她的純真。未失童趣的女子,能讓漫長枯燥的四目相對,其樂無窮。
10、喜歡讀書和音樂。喜歡讀書不是看什麼花花綠綠的時尚雜誌、喜歡音樂也不是什麼聽過就忘的流行小曲。經典的書籍和音樂能讓歲月與生活的瑣碎無法在她的心靈上烙下痕跡。
11、工作能力強,有一技之長。工作中的女人顯然沒有太多時間疑神疑鬼。有一技之長會使她自得其樂,很好地控制情緒。只要有一定的秉賦加勤奮,這不是問題。倒是要有一種教育的天分,能把孩子教好,似乎更重要。
12、有一點浪漫。婚姻生活是一個有顏色、有生息、有動靜的世界,很難想像一個不具備浪漫、不具備情趣的女人是個好妻子。
以上12條標準,應該齊了。擁有這樣的女子,縱使太陽和星月都冷了,群山草木都衰盡了,婚姻的光芒還能在記憶的最初,在任何可見和不可知的角落,溫暖的燃燒著……
二 [ 別說你單純,現在教你認人]
1 . 看一個男人的品位,要看他的鞋子。
2. 看一個女人是否有內涵,要看她的走姿。
3 . 看一個人的氣血,要看他的頭髮。
4 . 看一個人的心術,要看他的眼神。
5 . 看一個人的身價,要看他的對手。
6 . 看一個人的底牌,要看他身邊的好友。
7 . 看一個人的性格,要看他的字寫得怎樣。
8 . 看一個人是否快樂,不要看笑容,要看清晨夢醒時的一刹表情。
9 . 看一個人的胸襟,要看他如何面對失敗及被人出賣。
10. 看兩個人的關係,要看發生意外時,另一方的緊張程度。
11. 如果你想知道一個人是不是真的愛你,那要看他是不是在開心的時候想到你,而不是悲傷的時候。
12. 如果你想知道一個人是不是你的知己,那要看他是否和你心有靈犀,而不是要你什麼都告訴他。
13. 如果你想知道一個人是不是你真正的朋友,那要看他在你危難的時候,會不會為你兩肋插刀,而不是天天和你一起吃吃喝喝。
14. 如果你想知道一個人是否有愛心,那要看他是否喜歡小動物。
15. 如果你想知道一個人是否有修養,那要看他在公車上會不會為老人,兒童讓座位。
16. 如果你想知道是否有素質,那要看他是不是愛貪小便宜。
17. 如果你想知道一個人是否有心胸,那要看他是否在背後壞別人。
18. 如果你想知道一個人是否在說謊,那你要看他在說話時的眼神,眼神告訴你一切。
19. 如果你想知道一個人是否在乎你,那你要看他是否記住你曾經說過的話。
20. 如果你想知道一個人是否牽掛你,那要看他在天涼的時候是否想到提醒你加衣。
21. 如果你想知道你在那個人心中的分量如何,那要看他是否記住你的生日或紀念日.。
22. 如果想知道一個男人是否講究,那要看他的鞋子是否乾淨.。
23. 如果你想知道一個男人是否值得你去愛,那要看他是否有愛心,責任心,而不是有沒有地位和金錢.。
24. 如果你想知道一個男生是否值得你去愛,那要看他的內在,而不是外表,要看他是不是因為帥而可愛,而不是因為可愛而帥。
女生也應該:
急事,慢慢的說;
大事,清楚的說;
小事,幽默的說;
沒把握的事,謹慎的說;
沒發生的事,不要胡說;
做不到的事,別亂說;
傷害人的事,不能說;
討厭的事,對事不對人的說;
開心的事,看場合說;
傷心的事,不要見人就說;
別人的事,小心的說;
自己的事,聽聽自己的心怎麼說;
現在的事,做了再說;
未來的事,未來再說;
知人不必言盡,留三分餘地與人,留些口德與己。
責人不必苛盡,留三分餘地與人,留些肚量與己。
才能不必傲盡,留三分餘地與人,留些內涵與己。
鋒芒不必露盡,留三分餘地與人,留些深斂與己。
有功不必邀盡,留三分餘地與人,留些謙讓與己。
得理不必搶盡,留三分餘地與人,留些寬和與己。
source : http://www.post852.com/妻子決定你未來事業的高度,男的看一看,女的學/
Tuesday, 4 February 2014
Perl Win32::OLE Excel color index
Auto=>0
Black=>1
Blue=>5
BrightPink=>35
ChalkBlue=>24
Color_001=>32
Color_002=>34
Color_003=>37
Color_005=>39
Color_006=>40
DarkBlue=>12
DarkCoral=>22
DarkGreen=>4
DarkRed=>9
DarkYellow=>11
ForestGreen=>10
Gold=>44
Green=>50
Grey_25=>15
Grey_50=>16
Lavender=>38
LightBlue=>20
LightOrange=>45
LightYellow=>36
Lime=>43
MotorolaBlue=>23
PaleBlue=>17
PaleYellow=>19
Pink=>7
Plum=>18
Purple=>21
Red=>3
Rose=>46
RoyalBlue=>25
SkyBlue=>33
Teal=>14
Turquiose=>8
Violet=>13
White=>2
Yellow=>6
Black=>1
Blue=>5
BrightPink=>35
ChalkBlue=>24
Color_001=>32
Color_002=>34
Color_003=>37
Color_005=>39
Color_006=>40
DarkBlue=>12
DarkCoral=>22
DarkGreen=>4
DarkRed=>9
DarkYellow=>11
ForestGreen=>10
Gold=>44
Green=>50
Grey_25=>15
Grey_50=>16
Lavender=>38
LightBlue=>20
LightOrange=>45
LightYellow=>36
Lime=>43
MotorolaBlue=>23
PaleBlue=>17
PaleYellow=>19
Pink=>7
Plum=>18
Purple=>21
Red=>3
Rose=>46
RoyalBlue=>25
SkyBlue=>33
Teal=>14
Turquiose=>8
Violet=>13
White=>2
Yellow=>6
Monday, 3 February 2014
Perl Excel ( Win32::OLE Excel Cheat Sheet )
use OLE;
use Win32::OLE::Const "Microsoft Excel";
###################################################################################################################################
#___ DEFINE EXCEL
$excel = CreateObject OLE "Excel.Application";
#___ MAKE EXCEL VISIBLE
$excel -> {Visible} = 1;
#___ ADD NEW WORKBOOK
$workbook = $excel -> Workbooks -> Add;
$sheet = $workbook -> Worksheets("Sheet1");
$sheet -> Activate;
#___ OPEN EXISTING WORKBOOK
$workbook = $excel -> Workbooks -> Open("$file_name");
$sheet = $workbook -> Worksheets(1) -> {Name};
$sheet = $workbook -> Worksheets($sheet);
$sheet -> Activate;
#___ ACTIVATE EXISTING WORKBOOK
$excel -> Windows("Book1") -> Activate;
$workbook = $excel -> Activewindow;
$sheet = $workbook -> Activesheet;
#___ CLOSE WORKBOOK
$workbook -> Close;
#___ ADD NEW WORKSHEET
$workbook -> Worksheets -> Add({After => $workbook -> Worksheets($workbook -> Worksheets -> {Count})});
#___ CHANGE WORKSHEET NAME
$sheet -> {Name} = "Name of Worksheet";
#___ PRINT VALUE TO CELL
$sheet -> Range("A1") -> {Value} = 1234;
#___ SUM FORMULAS
$sheet -> Range("A3") -> {FormulaR1C1} = "=SUM(R[-2]C:R[-1]C)"; # Sum rows
$sheet -> Range("C1") -> {FormulaR1C1} = "=SUM(RC[-2]:RC[-1])"; # Sum columns
#___ RETRIEVE VALUE FROM CELL
$data = $sheet -> Range("G7") -> {Value};
#___ FORMAT TEXT
$sheet -> Range("G7:H7") -> Font -> {Bold} = "True";
$sheet -> Range("G7:H7") -> Font -> {Italic} = "True";
$sheet -> Range("G7:H7") -> Font -> {Underline} = xlUnderlineStyleSingle;
$sheet -> Range("G7:H7") -> Font -> {Size} = 8;
$sheet -> Range("G7:H7") -> Font -> {Name} = "Arial";
$sheet -> Range("G7:H7") -> Font -> {ColorIndex} = 4;
$sheet -> Range("G7:H7") -> {NumberFormat} = "\@"; # Text
$sheet -> Range("A1:H7") -> {NumberFormat} = "\$#,##0.00"; # Currency
$sheet -> Range("G7:H7") -> {NumberFormat} = "\$#,##0.00_);[Red](\$#,##0.00)"; # Currency - red negatives
$sheet -> Range("G7:H7") -> {NumberFormat} = "0.00_);[Red](0.00)"; # Numbers with decimals
$sheet -> Range("G7:H7") -> {NumberFormat} = "#,##0"; # Numbers with commas
$sheet -> Range("G7:H7") -> {NumberFormat} = "#,##0_);[Red](#,##0)"; # Numbers with commas - red negatives
$sheet -> Range("G7:H7") -> {NumberFormat} = "0.00%"; # Percents
$sheet -> Range("G7:H7") -> {NumberFormat} = "m/d/yyyy" # Dates
#___ ALIGN TEXT
$sheet -> Range("G7:H7") -> {HorizontalAlignment} = xlHAlignCenter; # Center text;
$sheet -> Range("A1:A2") -> {Orientation} = 90; # Rotate text
#___ SET COLUMN WIDTH/ROW HEIGHT
$sheet -> Range('A:A') -> {ColumnWidth} = 9.14;
$sheet -> Range("8:8") -> {RowHeight} = 30;
$sheet -> Range("G:H") -> {Columns} -> Autofit;
#___ FIND LAST ROW/COLUMN WITH DATA
$last_row = $sheet -> UsedRange -> Find({What => "*", SearchDirection => xlPrevious, SearchOrder => xlByRows}) -> {Row};
$last_col = $sheet -> UsedRange -> Find({What => "*", SearchDirection => xlPrevious, SearchOrder => xlByColumns}) -> {Column};
#___ ADD BORDERS
$sheet -> Range("A3:I3") -> Borders(xlEdgeBottom) -> {LineStyle} = xlDouble;
$sheet -> Range("A3:I3") -> Borders(xlEdgeBottom) -> {Weight} = xlThick;
$sheet -> Range("A3:I3") -> Borders(xlEdgeBottom) -> {ColorIndex} = 1;
$sheet -> Range("A3:I3") -> Borders(xlEdgeLeft) -> {LineStyle} = xlContinuous;
$sheet -> Range("A3:I3") -> Borders(xlEdgeLeft) -> {Weight} = xlThin;
$sheet -> Range("A3:I3") -> Borders(xlEdgeTop) -> {LineStyle} = xlContinuous;
$sheet -> Range("A3:I3") -> Borders(xlEdgeTop) -> {Weight} = xlThin;
$sheet -> Range("A3:I3") -> Borders(xlEdgeBottom) -> {LineStyle} = xlContinuous;
$sheet -> Range("A3:I3") -> Borders(xlEdgeBottom) -> {Weight} = xlThin;
$sheet -> Range("A3:I3") -> Borders(xlEdgeRight) -> {LineStyle} = xlContinuous;
$sheet -> Range("A3:I3") -> Borders(xlEdgeRight) -> {Weight} = xlThin;
$sheet -> Range("A3:I3") -> Borders(xlInsideVertical) -> {LineStyle} = xlContinuous;
$sheet -> Range("A3:I3") -> Borders(xlInsideVertical) -> {Weight} = xlThin;
$sheet -> Range("A3:I3") -> Borders(xlInsideHorizontal) -> {LineStyle} = xlContinuous;
$sheet -> Range("A3:I3") -> Borders(xlInsideHorizontal) -> {Weight} = xlThin;
#___ PRINT SETUP
$sheet -> PageSetup -> {Orientation} = xlLandscape;
$sheet -> PageSetup -> {Order} = xlOverThenDown;
$sheet -> PageSetup -> {LeftMargin} = .25;
$sheet -> PageSetup -> {RightMargin} = .25;
$sheet -> PageSetup -> {BottomMargin} = .5;
$sheet -> PageSetup -> {CenterFooter} = "Page &P of &N";
$sheet -> PageSetup -> {RightFooter} = "Page &P of &N";
$sheet -> PageSetup -> {LeftFooter} = "Left\nFooter";
$sheet -> PageSetup -> {Zoom} = 75;
$sheet -> PageSetup -> FitToPagesWide = 1;
$sheet -> PageSetup -> FitToPagesTall = 1;
#___ ADD PAGE BREAK
$excel -> ActiveWindow -> SelectedSheets -> HPageBreaks -> Add({Before => $sheet -> Range("3:3")});
#___ HIDE COLUMNS
$sheet -> Range("G:H") -> EntireColumn -> {Hidden} = "True";
#___ MERGE CELLS
$sheet -> Range("H10:J10") -> Merge;
#___ INSERT PICTURE
$sheet -> Pictures -> Insert("picture_name"); # Insert in upper-left corner
$excel -> ActiveSheet -> Pictures -> Insert("picture_name"); # Insert in active cell
#___ GROUP ROWS
$sheet -> Range("7:8") -> Group;
#___ ACTIVATE CELL
$sheet -> Range("A2") -> Activate;
#___ FREEZE PANES
$excel -> ActiveWindow -> {FreezePanes} = "True";
#___ DELETE SHEET
$sheet -> Delete;
#___ SAVE AND QUIT
$excel -> {DisplayAlerts} = 0; # This turns off the "This file already exists" message.
$workbook -> SaveAs ("C:\\file_name.xls");
$excel -> Quit;
source : http://www.tek-tips.com/faqs.cfm?fid=6715
use Win32::OLE::Const "Microsoft Excel";
###################################################################################################################################
#___ DEFINE EXCEL
$excel = CreateObject OLE "Excel.Application";
#___ MAKE EXCEL VISIBLE
$excel -> {Visible} = 1;
#___ ADD NEW WORKBOOK
$workbook = $excel -> Workbooks -> Add;
$sheet = $workbook -> Worksheets("Sheet1");
$sheet -> Activate;
#___ OPEN EXISTING WORKBOOK
$workbook = $excel -> Workbooks -> Open("$file_name");
$sheet = $workbook -> Worksheets(1) -> {Name};
$sheet = $workbook -> Worksheets($sheet);
$sheet -> Activate;
#___ ACTIVATE EXISTING WORKBOOK
$excel -> Windows("Book1") -> Activate;
$workbook = $excel -> Activewindow;
$sheet = $workbook -> Activesheet;
#___ CLOSE WORKBOOK
$workbook -> Close;
#___ ADD NEW WORKSHEET
$workbook -> Worksheets -> Add({After => $workbook -> Worksheets($workbook -> Worksheets -> {Count})});
#___ CHANGE WORKSHEET NAME
$sheet -> {Name} = "Name of Worksheet";
#___ PRINT VALUE TO CELL
$sheet -> Range("A1") -> {Value} = 1234;
#___ SUM FORMULAS
$sheet -> Range("A3") -> {FormulaR1C1} = "=SUM(R[-2]C:R[-1]C)"; # Sum rows
$sheet -> Range("C1") -> {FormulaR1C1} = "=SUM(RC[-2]:RC[-1])"; # Sum columns
#___ RETRIEVE VALUE FROM CELL
$data = $sheet -> Range("G7") -> {Value};
#___ FORMAT TEXT
$sheet -> Range("G7:H7") -> Font -> {Bold} = "True";
$sheet -> Range("G7:H7") -> Font -> {Italic} = "True";
$sheet -> Range("G7:H7") -> Font -> {Underline} = xlUnderlineStyleSingle;
$sheet -> Range("G7:H7") -> Font -> {Size} = 8;
$sheet -> Range("G7:H7") -> Font -> {Name} = "Arial";
$sheet -> Range("G7:H7") -> Font -> {ColorIndex} = 4;
$sheet -> Range("G7:H7") -> {NumberFormat} = "\@"; # Text
$sheet -> Range("A1:H7") -> {NumberFormat} = "\$#,##0.00"; # Currency
$sheet -> Range("G7:H7") -> {NumberFormat} = "\$#,##0.00_);[Red](\$#,##0.00)"; # Currency - red negatives
$sheet -> Range("G7:H7") -> {NumberFormat} = "0.00_);[Red](0.00)"; # Numbers with decimals
$sheet -> Range("G7:H7") -> {NumberFormat} = "#,##0"; # Numbers with commas
$sheet -> Range("G7:H7") -> {NumberFormat} = "#,##0_);[Red](#,##0)"; # Numbers with commas - red negatives
$sheet -> Range("G7:H7") -> {NumberFormat} = "0.00%"; # Percents
$sheet -> Range("G7:H7") -> {NumberFormat} = "m/d/yyyy" # Dates
#___ ALIGN TEXT
$sheet -> Range("G7:H7") -> {HorizontalAlignment} = xlHAlignCenter; # Center text;
$sheet -> Range("A1:A2") -> {Orientation} = 90; # Rotate text
#___ SET COLUMN WIDTH/ROW HEIGHT
$sheet -> Range('A:A') -> {ColumnWidth} = 9.14;
$sheet -> Range("8:8") -> {RowHeight} = 30;
$sheet -> Range("G:H") -> {Columns} -> Autofit;
#___ FIND LAST ROW/COLUMN WITH DATA
$last_row = $sheet -> UsedRange -> Find({What => "*", SearchDirection => xlPrevious, SearchOrder => xlByRows}) -> {Row};
$last_col = $sheet -> UsedRange -> Find({What => "*", SearchDirection => xlPrevious, SearchOrder => xlByColumns}) -> {Column};
#___ ADD BORDERS
$sheet -> Range("A3:I3") -> Borders(xlEdgeBottom) -> {LineStyle} = xlDouble;
$sheet -> Range("A3:I3") -> Borders(xlEdgeBottom) -> {Weight} = xlThick;
$sheet -> Range("A3:I3") -> Borders(xlEdgeBottom) -> {ColorIndex} = 1;
$sheet -> Range("A3:I3") -> Borders(xlEdgeLeft) -> {LineStyle} = xlContinuous;
$sheet -> Range("A3:I3") -> Borders(xlEdgeLeft) -> {Weight} = xlThin;
$sheet -> Range("A3:I3") -> Borders(xlEdgeTop) -> {LineStyle} = xlContinuous;
$sheet -> Range("A3:I3") -> Borders(xlEdgeTop) -> {Weight} = xlThin;
$sheet -> Range("A3:I3") -> Borders(xlEdgeBottom) -> {LineStyle} = xlContinuous;
$sheet -> Range("A3:I3") -> Borders(xlEdgeBottom) -> {Weight} = xlThin;
$sheet -> Range("A3:I3") -> Borders(xlEdgeRight) -> {LineStyle} = xlContinuous;
$sheet -> Range("A3:I3") -> Borders(xlEdgeRight) -> {Weight} = xlThin;
$sheet -> Range("A3:I3") -> Borders(xlInsideVertical) -> {LineStyle} = xlContinuous;
$sheet -> Range("A3:I3") -> Borders(xlInsideVertical) -> {Weight} = xlThin;
$sheet -> Range("A3:I3") -> Borders(xlInsideHorizontal) -> {LineStyle} = xlContinuous;
$sheet -> Range("A3:I3") -> Borders(xlInsideHorizontal) -> {Weight} = xlThin;
#___ PRINT SETUP
$sheet -> PageSetup -> {Orientation} = xlLandscape;
$sheet -> PageSetup -> {Order} = xlOverThenDown;
$sheet -> PageSetup -> {LeftMargin} = .25;
$sheet -> PageSetup -> {RightMargin} = .25;
$sheet -> PageSetup -> {BottomMargin} = .5;
$sheet -> PageSetup -> {CenterFooter} = "Page &P of &N";
$sheet -> PageSetup -> {RightFooter} = "Page &P of &N";
$sheet -> PageSetup -> {LeftFooter} = "Left\nFooter";
$sheet -> PageSetup -> {Zoom} = 75;
$sheet -> PageSetup -> FitToPagesWide = 1;
$sheet -> PageSetup -> FitToPagesTall = 1;
#___ ADD PAGE BREAK
$excel -> ActiveWindow -> SelectedSheets -> HPageBreaks -> Add({Before => $sheet -> Range("3:3")});
#___ HIDE COLUMNS
$sheet -> Range("G:H") -> EntireColumn -> {Hidden} = "True";
#___ MERGE CELLS
$sheet -> Range("H10:J10") -> Merge;
#___ INSERT PICTURE
$sheet -> Pictures -> Insert("picture_name"); # Insert in upper-left corner
$excel -> ActiveSheet -> Pictures -> Insert("picture_name"); # Insert in active cell
#___ GROUP ROWS
$sheet -> Range("7:8") -> Group;
#___ ACTIVATE CELL
$sheet -> Range("A2") -> Activate;
#___ FREEZE PANES
$excel -> ActiveWindow -> {FreezePanes} = "True";
#___ DELETE SHEET
$sheet -> Delete;
#___ SAVE AND QUIT
$excel -> {DisplayAlerts} = 0; # This turns off the "This file already exists" message.
$workbook -> SaveAs ("C:\\file_name.xls");
$excel -> Quit;
source : http://www.tek-tips.com/faqs.cfm?fid=6715
人生太短,聪明太晚
把钱省下来,等待退休后再去享受 结果退休后,因为年纪大,身体差,行动不方便,哪里也去不成。钱存下来等养老,结果孩子长大了,要出国留学,要创业做生意,要花钱娶老婆,自己的退休金都被拗走了。
当自己有足够的能力善待自己时,就立刻去做,老年人有时候是无法做中年人或是青少年人可以做的事,年纪和健康就是一大因素。
小孩子从小就告诉他,养你到高中,大学以后就要自立更生,要留学,创业,娶老婆,自己想办法,自己要留多一点钱,不要为了小孩子而活我们都老得太快却聪明得太迟,我的学长去年丧妻。
这突如其来的事故,实在叫人难以接受,但是死亡的到来不总是如此。学长说他太太最希望他能送鲜花给他,但是他觉得太浪费,总推说等到下次再买,结果却是在她死后,用鲜花布置她的灵堂。这不是太蠢愚了吗?!
等到......、等到.....,似乎我们所有的生命,都用在等待。
「等到我大学毕业以后,我就会如何如何」我们对自己说
「等到我买房子以后!」
「等我最小的孩子结婚之后!」
「等我把这笔生意谈成之后!」
「等到我死了以后」
人人都很愿意牺牲当下,去换取未知的等待;牺牲今生今世的辛苦钱,去购买后世的安逸
在台湾只要往有山的道路上走一走,就随处都可看到「农舍」变「精舍」,山坡地变灵塔,无非也是为了等到死后,能图个保障,不必再受苦。许多人认为必须等到某时或某事完成之后再采取行动。明天我就开始运动,明天我就会对他好一点,下星期我们就找时间出去走走;退休后,我们就要好好享受一下。
然而,生活总是一直变动,环境总是不可预知,现实生活中,各种突发状况总是层出不穷。身为一个医生,我所见过的死人,比一般人要来得多。
这些人早上醒来时,原本预期过的是另一个平凡无奇的日子,没想到一个意料之外的事;交通意外、脑溢血、心脏病发作等等。
剎那间生命的巨轮倾覆离轨,突然闯进一片黑暗之中。那么我们要如何面对生命呢?我们毋需等到生活完美无瑕,也毋需等到一切都平稳,想做什么,现在就可以开始做起。
一个人永远也无法预料未来,所以不要延缓想过的生活,不要吝于表达心中的话, 因为生命只在一瞬间。
记住!
给活人送一朵鲜花,强过给死人送贵重的花圈,每个人的生命都有尽头,许多人经常在生命即将结束时,才发现自己还有很多事没有做,有许多话来不及说,这实在是人生最大的遗憾。
别让自己徒留「为时已晚」的空余恨。逝者不可追,来者犹未卜,最珍贵、最需要实时掌握的「当下」,往往在这两者蹉跎间,转眼错失。
人生短暂飘忽,包得有一首小诗这样写:
高天与原地,悠悠人生路;
行行向何方,转眼即长暮。
正是道尽了人生如寄,转眼即逝的惶恐。
有许多事,在你还不懂得珍惜之前已成旧事;有许多人,在你还来不及用心之前 已成旧人。
遗憾的事一再发生,但过后再追悔「早知道如何如何」是没有用的,「那时候」已经过去,你追念的人也已走过了你。
一句瑞典格言说:「我们老得太快,却聪明得太迟。」不管你是否察觉,生命都一直在前进。
人生并未售来回票,失去的便永远不再得到。
将希望寄予「等到方便的时间才享受」
我们不知失去了多少可能的幸福
不要再等待有一天你「可以松口气」,或是「麻烦都过去了」。
生命中大部分的美好事物都是短暂易逝的,
享受它们、品尝它们,
善待你周围的每一个人,
别把时间浪费在等待所有难题的「完满结局」上。
找回迷失的生命
死亡也许是免费的 ─ 但是,却要付出生命的代价。
劝大家一句话:把握当下,莫等待。
人,就这么一辈子 !
转贴之微信
source : http://www.investalks.com/forum/viewthread.php?tid=27199
当自己有足够的能力善待自己时,就立刻去做,老年人有时候是无法做中年人或是青少年人可以做的事,年纪和健康就是一大因素。
小孩子从小就告诉他,养你到高中,大学以后就要自立更生,要留学,创业,娶老婆,自己想办法,自己要留多一点钱,不要为了小孩子而活我们都老得太快却聪明得太迟,我的学长去年丧妻。
这突如其来的事故,实在叫人难以接受,但是死亡的到来不总是如此。学长说他太太最希望他能送鲜花给他,但是他觉得太浪费,总推说等到下次再买,结果却是在她死后,用鲜花布置她的灵堂。这不是太蠢愚了吗?!
等到......、等到.....,似乎我们所有的生命,都用在等待。
「等到我大学毕业以后,我就会如何如何」我们对自己说
「等到我买房子以后!」
「等我最小的孩子结婚之后!」
「等我把这笔生意谈成之后!」
「等到我死了以后」
人人都很愿意牺牲当下,去换取未知的等待;牺牲今生今世的辛苦钱,去购买后世的安逸
在台湾只要往有山的道路上走一走,就随处都可看到「农舍」变「精舍」,山坡地变灵塔,无非也是为了等到死后,能图个保障,不必再受苦。许多人认为必须等到某时或某事完成之后再采取行动。明天我就开始运动,明天我就会对他好一点,下星期我们就找时间出去走走;退休后,我们就要好好享受一下。
然而,生活总是一直变动,环境总是不可预知,现实生活中,各种突发状况总是层出不穷。身为一个医生,我所见过的死人,比一般人要来得多。
这些人早上醒来时,原本预期过的是另一个平凡无奇的日子,没想到一个意料之外的事;交通意外、脑溢血、心脏病发作等等。
剎那间生命的巨轮倾覆离轨,突然闯进一片黑暗之中。那么我们要如何面对生命呢?我们毋需等到生活完美无瑕,也毋需等到一切都平稳,想做什么,现在就可以开始做起。
一个人永远也无法预料未来,所以不要延缓想过的生活,不要吝于表达心中的话, 因为生命只在一瞬间。
记住!
给活人送一朵鲜花,强过给死人送贵重的花圈,每个人的生命都有尽头,许多人经常在生命即将结束时,才发现自己还有很多事没有做,有许多话来不及说,这实在是人生最大的遗憾。
别让自己徒留「为时已晚」的空余恨。逝者不可追,来者犹未卜,最珍贵、最需要实时掌握的「当下」,往往在这两者蹉跎间,转眼错失。
人生短暂飘忽,包得有一首小诗这样写:
高天与原地,悠悠人生路;
行行向何方,转眼即长暮。
正是道尽了人生如寄,转眼即逝的惶恐。
有许多事,在你还不懂得珍惜之前已成旧事;有许多人,在你还来不及用心之前 已成旧人。
遗憾的事一再发生,但过后再追悔「早知道如何如何」是没有用的,「那时候」已经过去,你追念的人也已走过了你。
一句瑞典格言说:「我们老得太快,却聪明得太迟。」不管你是否察觉,生命都一直在前进。
人生并未售来回票,失去的便永远不再得到。
将希望寄予「等到方便的时间才享受」
我们不知失去了多少可能的幸福
不要再等待有一天你「可以松口气」,或是「麻烦都过去了」。
生命中大部分的美好事物都是短暂易逝的,
享受它们、品尝它们,
善待你周围的每一个人,
别把时间浪费在等待所有难题的「完满结局」上。
找回迷失的生命
死亡也许是免费的 ─ 但是,却要付出生命的代价。
劝大家一句话:把握当下,莫等待。
人,就这么一辈子 !
转贴之微信
source : http://www.investalks.com/forum/viewthread.php?tid=27199
Subscribe to:
Posts (Atom)