SQLの窓

2011年06月30日


PHP : ImageMagick : 背景が透過する画像を作成

▼ クリック


色指定で 'none' を指定してみて下さい。ネタ元は、PHP マニュアルの テキスト描画ページの投稿データです





posted by lightbox at 2011-06-30 23:59 | PHP + WEBアプリ | このブログの読者になる | 更新情報をチェックする

2011年06月26日


IE 専用 : 「信頼済みサイト」でのみ行う、InternetExplorer.Application オブジェクト

通常の「インターネット」では行いません。「イントラネット」または、「信頼済みサイト」でのみ ActiveX を実行可能にして、WEB ページのデータを Excel のブックに転送して保存します。

業務アプリケーションとして、「運用ルール」がきちんと決められ、システム管理者が居られるとい前提で通常は利用されます。

▼ 以下、前提となる設定( 通常アプリケーションで設定します )




画像では、「localhost」ですが、イントラネットですと、単純にサーバー名になります
<?
header( "Content-Type: text/html; Charset=utf-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" )


?>
<!DOCTYPE html>
<html>
<head>
<neta http-equiv="Content-type" content="text/html; charset=utf-8">
<script type="text/javascript">

var ie

window.onunload = quitIe;

function openIe() {

	if ( !ie ) {
		ie = new ActiveXObject("InternetExplorer.Application");
		ie.Width = 800;
		ie.Height = 600;
		ie.Left = 100;
		ie.Top = 100;
		ie.Visible = true;
	}

}
function quitIe() {

	if ( ie ) {
		ie.Quit();
		ie = null;
	}
}

function naviIe( str ) {

	if ( ie ) {
		ie.Navigate( str )
	}

}

function checkIe( ) {

	var result;

	if ( ie ) {
		result = ie.Document.getElementsByTagName("img")(0).src
		alert(result)
	}

}


</script>
</head>
<body>
<pre>
<input type="button" value="IEを開始する" onclick='openIe()'>
<input type="button" value="IEを終了する" onclick='quitIe()'>
<input type="button" value="SQLの窓へ" onclick='naviIe("http://winofsql.jp/")'>
<input type="button" value="処理" onclick='checkIe()'>

</pre>
</body>
</html>


Excel の操作とは違い、呼び出したページの操作を行うので、都合のよい JavaScript でオブジェクト操作を行っています。Navigate2 という POST できるメソッドがあるのでプログラムからの投稿も一応は可能だと思います



posted by lightbox at 2011-06-26 13:52 | IE | このブログの読者になる | 更新情報をチェックする

IE 専用 : 「信頼済みサイト」でのみ行う、WEBページのデータの Excel への転送

通常の「インターネット」では行いません。「イントラネット」または、「信頼済みサイト」でのみ ActiveX を実行可能にして、WEB ページのデータを Excel のブックに転送して保存します。

業務アプリケーションとして、「運用ルール」がきちんと決められ、システム管理者が居られるとい前提で通常は利用されます。

▼ 以下、前提となる設定( 通常アプリケーションで設定します )




画像では、「localhost」ですが、イントラネットですと、単純にサーバー名になります
<?
header( "Content-Type: text/html; Charset=utf-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" )


?>
<!DOCTYPE html>
<html>
<head>
<neta http-equiv="Content-type" content="text/html; charset=utf-8">
<?// IE 専用 ?>
<script FOR="window" EVENT="onunload" language="VBScript">

	if IsObject( WSH ) then
		Set WSH = Nothing
	end if

</script>
<script language="VBScript">

Dim WSH
Dim ExcelApp

' ******************************************************
' Excel 実行
' ******************************************************
Function LoadExcel(strPath)

	If Not IsObject(WSH) Then
		Set WSH = CreateObject("WScript.Shell")
	End If

	Call WSH.Run( "RunDLL32.EXE shell32.dll,ShellExec_RunDLL " & _
		strPath )

End Function

' ******************************************************
' Excel 処理
' ******************************************************
Function ExcelActiont()

	Dim ExcelApp
	Dim MyBook
	Dim Sheet

	Set ExcelApp = CreateObject("Excel.Application")

	' 表示状態にする( 非表示にしても良いが、
	' 処理が長い場合は表示しておいたほうが良い
	ExcelApp.Visible = True
	' 確認ダイアログを出さない
	ExcelApp.DisplayAlerts = False

	' ブックを読み込む
	Set MyBook = ExcelApp.Workbooks.Open("C:\Book1.xlsx")

	' シート
	Set Sheet = MyBook.Sheets("Sheet2")

	' そのシートを選択状態にする
	Sheet.select

	' セルにデータをセット
	' 5行目 2列

	Dim tbl,rows,I,cols

	' テーブルオブジェクトを取得
	' ※ 配列は、() で参照する
	Set tbl = document.getElementsByTagName("table")(0)

	' 行のコレクション
	Set rows = tbl.getElementsByTagName("tr")

	' TH は読み飛ばす
	For I = 1 to ( rows.length - 1 )
		' 列のコレクション
		Set cols = rows(I).getElementsByTagName("td")
		' 2番目( 名前 )
		Sheet.Cells(I+5, 2) = cols(1).innerText
	Next

	MyBook.SaveAs "C:\Book_test.xlsx"

	' Excel を終了
	ExcelApp.Quit

	' Excel 解放
	Set ExcelApp = Nothing

	' 保存したブックを Excel で実行
	Call LoadExcel( "C:\Book_test.xlsx" )

End Function


</script>
</head>
<body>
<input type="button" value="Excel起動" language="VBScript" onclick='Call ExcelActiont()'>



<STYLE type=text/css>
#lboxtable * {
	font-family: 'MS Pゴシック';
	font-size: 12px;
}
#lboxtable table {
	border-collapse: collapse;
	border-style: solid;
	border-color: #000000;
	border-width: 1px;
	background-color: #FFFFFF;
}
#lboxtable td {
	padding: 5px;
	border-style: solid;
	border-color: #000000;
	border-width: 1px;
	/* white-space: nowrap; */
}
#lboxtable th {
	padding: 5px;
	border-style: solid;
	border-color: #000000;
	border-width: 1px;
	background-color: silver;
	/* white-space: nowrap; */
}
</STYLE>
<DIV id="lboxtable">
<table><TBODY>
<TR class=LboxTr>
<TH class=LboxTh  noWrap>社員コード</TH>
<TH class=LboxTh  noWrap>氏名</TH>
<TH class=LboxTh  noWrap>フリガナ</TH>
<TH class=LboxTh  noWrap>所属</TH>
<TH class=LboxTh  noWrap>性別</TH>
<TH class=LboxTh  noWrap>給与</TH></TR>
<TR class=LboxTr>
<TD class=LboxTd  noWrap>0001</TD>
<TD class=LboxTd  noWrap>浦岡 友也</TD>
<TD class=LboxTd  noWrap>ウラオカ トモヤ</TD>
<TD class=LboxTd  noWrap>0003</TD>
<TD class=LboxTd  noWrap>0</TD>
<TD class=LboxTd  noWrap>270000</TD></TR>
<TR class=LboxTr>
<TD class=LboxTd  noWrap>0002</TD>
<TD class=LboxTd  noWrap>山村 洋代</TD>
<TD class=LboxTd  noWrap>ヤマムラ ヒロヨ</TD>
<TD class=LboxTd  noWrap>0003</TD>
<TD class=LboxTd  noWrap>1</TD>
<TD class=LboxTd  noWrap>300000</TD></TR>
<TR class=LboxTr>
<TD class=LboxTd  noWrap>0003</TD>
<TD class=LboxTd  noWrap>多岡 冬行</TD>
<TD class=LboxTd  noWrap>タオカ フユユキ</TD>
<TD class=LboxTd  noWrap>0002</TD>
<TD class=LboxTd  noWrap>0</TD>
<TD class=LboxTd  noWrap>250000</TD></TR>
<TR class=LboxTr>
<TD class=LboxTd  noWrap>0004</TD>
<TD class=LboxTd  noWrap>高田 冬美</TD>
<TD class=LboxTd  noWrap>タカタ フユミ</TD>
<TD class=LboxTd  noWrap>0003</TD>
<TD class=LboxTd  noWrap>1</TD>
<TD class=LboxTd  noWrap>250000</TD></TR>
</TBODY></table></DIV>

</body>
</html>

IE 専用なので、スクリプトは VBScript を使用しています。Windows のオブジェクトなので、VBScript で使うほうがいろいろ都合が良く、VB や VBA の情報が参考にできます

元になるブックは、C:\Book1.xlsx としていますが、場所に制限はありません
転送後、別のブックに保存してから、再度 Excel を普通に呼び出して開いています
元になるブックを書式として完成させておいて、データのみ転送します
Excel に対する操作はもっといろいろ可能です

※ 元のフォーマットのシートを元に、個人単位の単票をシートに氏名を付けて複数シート
※ を収めたブックを作成するのが一般的です


タグ:VBScript excle IE
posted by lightbox at 2011-06-26 13:32 | IE | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり