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 ) | このブログの読者になる | 更新情報をチェックする
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 終わり