🟩 もくじ
クリップボードの内容をファイルに追記するバッチファイル〔ただしUTF-8 BOMあり〕
- 以下のコードを[拡張子:.bat]の任意のファイル名かつ[文字:SJIS][改行:CR+LF]で保存する。
- 適宜、キーボードショートカットを設定し、プログラマブルキーボードなどに登録する。
powershell -Command Add-Content -Path C:\Users\%USERNAME%\Desktop\記述\mainichi-everyday.txt -Value (Get-Clipboard)
"C:\Program Files\WZ EDITOR 10\wzeditor.exe" C:\Users\%USERNAME%\Desktop\記述\mainichi-everyday.txt
"C:\Program Files (x86)\sakura\sakura.exe" C:\Users\%USERNAME%\Desktop\記述\mainichi-everyday.txt
exit
- 1行目は、クリップボードの内容をmainichi-everyday.txtに追記する〔上書きではない〕、という内容。
- 2行目は、mainichi-everyday.txtをWZ EDITORで開く、という内容。2行目は、なくてもよい。
- 3行目は、mainichi-everyday.txtをサクラエディタで開く、という内容。3行目は、なくてもよい。 このmainichi-everyday.txtは[拡張子:.txt]かつ[文字:UTF-8 BOMあり][改行:CR+LF]で保存してある。 PowerShell〔パワーシェル〕でクリップボードを操作した結果であるデータは、強制的に[UTF-8 BOMあり]にされてしまうため、クリップボードのデータを受けるmainichi-everyday.txtは[UTF-8 BOMあり]である必要があり、そうでなければ、文字化けしてしまう。
- [文字:UTF-8 BOMなし]にしようと、いろいろ工夫しようとしたけれども、諦めた。 Microsoftは、[UTF-8 BOMあり]をごり押ししたいらしい。
CSVファイル〔データベースのもと〕をテキストファイル等に追記していくHTML
【出所】:■HTML5のtableタグをCSV出力(ダウンロード)してみる - Qiita
以上のサイトのソースコードを、環境に合わせて改変しています。 以下のコードを[拡張子:.html]の任意のファイル名かつ[文字:UTF-8 BOMなし][改行:CR+LF]で保存します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<style type="text/css">
@charset "UTF-8";
/* ========BASIC======== */
html {
overflow-y:scroll;
}
body {
margin:0;
padding:0;
line-height:1.6;
letter-spacing:1px;
font-family:Verdana, Helvetica, sans-serif;
font-size:12px;
color:#333;
background:#fff;
}
br {
letter-spacing:normal;
}
a {
color:#0089a1;
text-decoration:none;
}
a:hover {
color:#0089a1;
text-decoration:underline;
}
img {
border:0;
vertical-align:bottom;
}
h1,h2,h3,h4,h5,h6 {
margin:0;
}
/* ========TEMPLATE LAYOUT======== */
#top {
width:780px;
margin:10px auto;
border:1px solid #333;
}
#header {
width:780px;
}
#contents {
clear:both;
}
#main {
float:left;
width:540px;
padding:10px;
}
/* ========HEADER CUSTOMIZE======== */
#header h1 {
margin:0;
padding:10px;
font-size:24px;
}
#header h1 a {
color:#333;
}
/* ========MAIN CONTENTS CUSTOMIZE======== */
#main h2 {
margin-bottom:5px;
padding:5px 0;
font-size:16px;
border-bottom:3px double #ccc;
}
#main h3 {
margin-bottom:5px;
padding:5px;
font-size:14px;
border-left:5px solid #0089a1;
border-bottom:1px dotted #ccc;
}
#main h4 {
margin-bottom:5px;
padding:5px;
font-size:13px;
color:#fff;
background:#0089a1;
}
#main h5 {
margin-bottom:5px;
font-size:13px;
border-bottom:1px dotted #ccc;
}
#main h6 {
margin-bottom:5px;
font-size:13px;
}
#main p {
margin:0 0 1em 0;
}
/* INFORMATION CUSTOMIZE */
* html body #main dl.information dd div {
display:inline-block;
}
#main table {
width:100%;
border-collapse:collapse;
}
#main table th {
padding:5px;
font-size:12px;
text-align:left;
border:1px solid #aaa;
background:#f0f7fc;
}
#main table td {
padding:5px;
font-size:12px;
text-align:left;
border:1px solid #aaa;
}
</style>
<title>デモ用アプリ</title>
</head>
<body>
<div id="top">
<div id="header">
<h1>データ加工商会</h1>
</div>
<div id="contents">
<!-- <div id="main" style="width: 760px;"> -->
<div id="main" style="width: 760px">
<h2>csvファイル入力|ダウンロード</h2>
<h4>日々のデータ蓄積</h4>
<div style="padding-top: 10px; width: 250px">
<h5>▼入力フィールド▼</h5>
<input name="table1_cell_value" id="th_value1" type="text" value="表題" placeholder="表題" onfocus="this.select();">
<input name="table1_cell_value" id="th_value2" type="text" value="本文" placeholder="本文" onfocus="this.select();">
<input name="table1_cell_value" id="th_value3" type="text" value="連絡先" placeholder="連絡先" onfocus="this.select();">
<input name="table1_cell_value" id="th_value4" type="text" value="備考" placeholder="備考" onfocus="this.select();">
<input type="button" value="行を追加" onclick="add_line()">
<b><a id="download" href="#" download="Cu3gHVXB.csv" onclick="handleDownload()">csvファイルダウンロード</a></b>
</div>
<table id="table1" border="1" cellpadding="10">
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</table>
</div>
</div>
<script>
//ここから表の行追加のコード
function add_line() {
for(var i = 0; i < document.getElementsByName("table1_cell_value").length; i++){
if(document.getElementsByName("table1_cell_value")[i].value ==""){
alert("未入力項目があります。");
return false;
}
}
var table = document.getElementById('table1');//id=table1という要素を取得
var row = table.insertRow(-1);//id=table1の中にtrタグを最後の子要素として追加
var cells = new Array();
for(var i = 0; i < table.rows[0].cells.length; i++){
cells[i] = row.insertCell(-1);//新しく作ったrowの中にtrタグを最後の子要素として追加
cells[i].innerText=document.getElementsByName("table1_cell_value")[i].value;
document.getElementsByName("table1_cell_value")[i].value="";//入力フィールドの初期化
}
}
//ここまで表の列追加のコード
//ここからCSV出力&ダウンロード
function handleDownload() {
var bom = new Uint8Array([0xEF, 0xBB, 0xBF]);//文字コードをBOM付きUTF-8に指定
var table = document.getElementById('table1');//id=table1という要素を取得
var data_csv="";//ここに文字データとして値を格納していく
for(var i = 0; i < table.rows.length; i++){
for(var j = 0; j < table.rows[i].cells.length; j++){
data_csv += table.rows[i].cells[j].innerText;//HTML中の表のセル値をdata_csvに格納
if(j == table.rows[i].cells.length-1) data_csv += "\r\n";//行終わりに改行コードを追加
else data_csv += ",";//セル値の区切り文字として,を追加
}
}
var blob = new Blob([ bom, data_csv], { "type" : "text/csv" });//data_csvのデータをcsvとしてダウンロードする関数
if (window.navigator.msSaveBlob) { //IEの場合の処理
window.navigator.msSaveBlob(blob, "Cu3gHVXB.csv");
//window.navigator.msSaveOrOpenBlob(blob, "Cu3gHVXB.csv");// msSaveOrOpenBlobの場合はファイルを保存せずに開ける
} else {
document.getElementById("download").href = window.URL.createObjectURL(blob);
}
delete data_csv;//data_csvオブジェクトはもういらないので消去してメモリを開放
}
//ここまでCSV出力&ダウンロード
</script>
</body>
</html>
CSVファイル〔データベースのもと〕をテキストファイル等に追記していくバッチファイル
以下のコードを[拡張子:.bat]の任意のファイル名かつ[文字:SJIS][改行:CR+LF]で保存する。 [文字:UTF-8 BOMあり]であるmainichi-everyday.txtに追記しても大丈夫でした。
cd C:\Users\%USERNAME%\Downloads
copy Cu3gHVXB*.csv 総合CSV.csv
del Cu3gHVXB*.csv
type C:\Users\%USERNAME%\Downloads\総合CSV.csv >> C:\Users\%USERNAME%\Desktop\記述\mainichi-everyday.txt
del 総合CSV.csv
"C:\Program Files\WZ EDITOR 10\wzeditor.exe" C:\Users\%USERNAME%\Desktop\記述\mainichi-everyday.txt
exit