SQLの窓

2020年04月25日


JScript : Excel をインストールしていなくても、Excel を DB として作成する方法

Windows10 64ビットのお話です

古い .xls を作る場合は、SysWOW64 内の 32ビットバージョンを使用します
str = WScript.FullName;
if ( str.search(/syswow/i) == -1 ) {

	shell = new ActiveXObject("Shell.Application");
	folder = shell.Namespace( 0x29 );
	folderItem = folder.Self;
	target_path = folderItem.Path;

	str = WScript.ScriptFullName;
	WshShell =  new ActiveXObject("WScript.Shell");
	WshShell.Run( "cmd.exe /c " + target_path + "\\cscript.exe \"" + str + "\" & pause", 3 );
	WScript.Quit();
}
// ****************************
// オブジェクト作成
// ****************************
var cn = new ActiveXObject( "ADODB.Connection" )

// ****************************
// 接続用の文字列を準備
// ****************************
var file_path = "C:\\Temp\\syain.xls";
var connection_string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + file_path + ";Extended Properties=\"Excel 8.0;\"";

var query = "create table [社員マスタ] ([社員コード] VARCHAR,[氏名] VARCHAR,[フリガナ] VARCHAR,[所属] VARCHAR,[性別] NUMBER,[作成日] DATE,[更新日] DATE,[給与] NUMBER,[手当] NUMBER,[管理者] VARCHAR,[生年月日] DATE)";

WScript.Echo( query );

// ****************************
// 作成
// ****************************
cn.Open( connection_string );
cn.Execute( query );
cn.Close();

WScript.Echo( "処理が終了しました" );

最新の .xlsx を作成する場合は、Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント をダウンロードしてインストールします。( 64ビット )


// ****************************
// オブジェクト作成
// ****************************
var cn = new ActiveXObject( "ADODB.Connection" )

// ****************************
// 接続用の文字列を準備
// ****************************
var file_path = "C:\\Temp\\syain.xlsx";
var connection_string = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file_path + ";Extended Properties=\"Excel 12.0 Xml;\"";

var query = "create table [社員マスタ] ([社員コード] VARCHAR,[氏名] VARCHAR,[フリガナ] VARCHAR,[所属] VARCHAR,[性別] NUMBER,[作成日] DATE,[更新日] DATE,[給与] NUMBER,[手当] NUMBER,[管理者] VARCHAR,[生年月日] DATE)";

WScript.Echo( query );

// ****************************
// 作成
// ****************************
cn.Open( connection_string );
cn.Execute( query );
cn.Close();

WScript.Echo( "処理が終了しました" );


内容を Excel として見るには Google ドライブにアップロードして Google スプレッドシートとして開きます。

しかし、.xls の場合 WORD とみなされてしまう事が多いので、先にスプレッドシートを開いておいてインポートするといいです。


もちろん、Microsoft のアカウントがあるのならば、OneDrive にアップロードして Excel として参照するといいでしょう
( しかし、Google Apps Script があるので、Google ドライブのほうがおすすめ )

posted by lightbox at 2020-04-25 20:28 | WSH( JScript ) | このブログの読者になる | 更新情報をチェックする

2019年08月16日


WSH( JScript ) : MySQL から SQLServer(SQLExpress) へのエクスポート

MySQL のドライバが 32 ビットのみの為、SysWOW64\cscript.exe で実行するようにしています。

<JOB>
<SCRIPT language="JScript">
// ****************************
// SysWOW64\cscript.exe を使用
// ****************************
str = WScript.FullName;
if ( str.search(/syswow/i) == -1 ) {

	shell = new ActiveXObject("Shell.Application");
	folder = shell.Namespace( 0x29 );
	folderItem = folder.Self;
	target_path = folderItem.Path;

	str = WScript.ScriptFullName;
	WshShell =  new ActiveXObject("WScript.Shell");
	WshShell.Run( "cmd.exe /c " + target_path + "\\cscript.exe \"" + str + "\" & pause", 3 );
	WScript.Quit();
}

// ****************************
// オブジェクト作成
// ****************************
var cn = new ActiveXObject( "ADODB.Connection" )

// ****************************
// 接続用の文字列を準備
// ****************************
var file_path1_accdb = "C:\\Users\\sworc\\Documents\\hanbaic-set\\hanbaic.accdb";
var connection_string = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file_path1_accdb + ";";

// ****************************
// エクスポート用の文字列を準備
// ****************************
var import_target = "[ODBC;Driver={MySQL ODBC 5.3 Unicode Driver};server=localhost;database=lightbox;uid=root;pwd=]";
var target_name = "社員マスタ";
var file_path_xlsx = "C:\\Users\\sworc\\Documents\\hanbaic-set\\new.xlsx";
var export_target = "[ODBC;Driver={SQL Server};server=localhost;database=lightbox;uid=sa;pwd=password]";
var export_query = "select * into " + export_target + "." + target_name + " from " + import_target + "." + target_name;

WScript.Echo( export_query );

// ****************************
// エクスポート
// ****************************
cn.Open( connection_string );
cn.Execute( export_query );
cn.Close();

WScript.Echo( target_name + " の MySQL から SQLServer(SQLExpress) へのエクスポート処理が終了しました" );

</SCRIPT>
</JOB>



関連する記事

System.Data.OleDb で select into 構文を使って簡単に Microsoft Access のデータを他の データベースにエクスポートする



posted by lightbox at 2019-08-16 20:45 | WSH( JScript ) | このブログの読者になる | 更新情報をチェックする

WSH( JScript ) : SysWOW64\cscript.exe を使用して実行しなおす処理

処理の内容は、MySQL から Excel へのエクスポートですが、接続には Access を使用します。ただ、環境の問題で MySQL のドライバを 32ビットしかインストールしていなかったのでこのようになっています。

ShellSpecialFolderConstants Enumeration
<JOB>
<SCRIPT language="JScript">
// ****************************
// SysWOW64\cscript.exe を使用
// ****************************
str = WScript.FullName;
if ( str.search(/syswow/i) == -1 ) {

	shell = new ActiveXObject("Shell.Application");
	folder = shell.Namespace( 0x29 );
	folderItem = folder.Self;
	target_path = folderItem.Path;

	str = WScript.ScriptFullName;
	WshShell =  new ActiveXObject("WScript.Shell");
	WshShell.Run( "cmd.exe /c " + target_path + "\\cscript.exe \"" + str + "\" & pause", 3 );
	WScript.Quit();
}

// ****************************
// オブジェクト作成
// ****************************
var cn = new ActiveXObject( "ADODB.Connection" )

// ****************************
// 接続用の文字列を準備
// ****************************
var file_path1_accdb = "C:\\Users\\sworc\\Documents\\hanbaic-set\\hanbaic.accdb";
var connection_string = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file_path1_accdb + ";";

// ****************************
// エクスポート用の文字列を準備
// ****************************
var import_target = "[ODBC;Driver={MySQL ODBC 5.3 Unicode Driver};server=localhost;database=lightbox;uid=root;pwd=]";
var target_name = "社員マスタ";
var file_path_xlsx = "C:\\Users\\sworc\\Documents\\hanbaic-set\\new.xlsx";
var export_target = "[Excel 12.0 xml;DATABASE=" + file_path_xlsx +"]";
var export_query = "select * into " + export_target + "." + target_name + " from " + import_target + "." + target_name;

WScript.Echo( export_query );

// ****************************
// エクスポート
// ****************************
cn.Open( connection_string );
cn.Execute( export_query );
cn.Close();

WScript.Echo( target_name + " の Excel へのエクスポート処理が終了しました" );

</SCRIPT>
</JOB>




posted by lightbox at 2019-08-16 20:09 | WSH( JScript ) | このブログの読者になる | 更新情報をチェックする
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 ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり