ドラッグドロップするとシート1の(1,1)のセルの内容を表示してみる
あと、worksheetの名前をtextbox2の内容で更新してみる
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Microsoft.Office.Interop;
using Microsoft.Office.Interop.Excel;
namespace excelTest01
{
public partial class Form1 : Form
{
Microsoft.Office.Interop.Excel.Application ExcelApp;
Workbook Workbook;
Worksheets Worksheets;
Worksheet Worksheet;
Range Range;
public Form1()
{
InitializeComponent();
ExcelApp = new Microsoft.Office.Interop.Excel.Application();
}
private void button1_Click(object sender, EventArgs e)
{
}
/// <summary>
/// ドロップ時イベント
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_DragDrop(object sender, DragEventArgs e)
{
string[] filelist = (string[])e.Data.GetData(DataFormats.FileDrop);
textBox1.Text = Path.GetFileName(filelist[0]);
string file = Path.GetFileName(filelist[0]);
// excelを開く
Workbook = ExcelApp.Workbooks.Open(filelist[0]);
// Worksheet = Workbook.Sheets[1]; // ワークシートのインデックスは1から
Worksheet = Workbook.Sheets[2]; // ワークシートのインデックスは1から
Range = Worksheet.Cells[1, 1];
textBox1.Text = Range.Text;
Worksheet.Name = textBox2.Text; // ワークシートのnameプロパティでワークシート名を変更出来るようだ
// excelを閉じる
ExcelApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelApp);
}
/// <summary>
/// ドラッグエンター時イベント
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Copy;
else
e.Effect = DragDropEffects.None;
}
}
}
2015年2月3日火曜日
2014年8月12日火曜日
Windows8の他のPCのドライブを参照
Windows8.1を使っていますが、エクスプローラで"ネットワーク"を見ていると他のWindows8.1のマシンが見えます
Windows7以前はフォルダ共有をしないとダメだった気がしますが、Windows8(.1?)からはMSアカウントにしていればそのままアクセス出来た気がしましたが...
久々にアクセスしようと思ったら"パスワードが違っています"と言われます(あれ??)
よく見ると、ドメインにローカルPCの名前がついたようなログイン名になっています
ex) computer_name01\hogehoge
みたいな(compter_name01は現在自分がログインしているコンピュータ名)
これではダメですね...(エラーの"パスワードが違っています"だと勘違いしますが...)
という事で適当に
computer_name02\hogehoge@live.jp
としたら入れました(!?)
便利な機能ですが、"パスワードが違う"と言われると勘違いしますよね...
Windows7以前はフォルダ共有をしないとダメだった気がしますが、Windows8(.1?)からはMSアカウントにしていればそのままアクセス出来た気がしましたが...
久々にアクセスしようと思ったら"パスワードが違っています"と言われます(あれ??)
よく見ると、ドメインにローカルPCの名前がついたようなログイン名になっています
ex) computer_name01\hogehoge
みたいな(compter_name01は現在自分がログインしているコンピュータ名)
これではダメですね...(エラーの"パスワードが違っています"だと勘違いしますが...)
という事で適当に
computer_name02\hogehoge@live.jp
としたら入れました(!?)
便利な機能ですが、"パスワードが違う"と言われると勘違いしますよね...
2014年6月21日土曜日
Canvasその1 fillRectで矩形を描画
HTML5での図形描画はcanvasというものを使います
最初のひな形を基に、四角を描画するコードを書いてみます
間違っていると描画されませんので、適当にデバッグログを入れてfirefoxのコンソールで確認しながら進めます
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Canvas01 </title>
</head>
<body onload="draw('canvas');">
<H1> Canvasによる矩形の描画 </H1>
<canvas id="canvas" width="400" height="300" />
<script>
function draw(id){
console.log("ondraw : " + id);
var canvas = document.getElementById(id);
if( canvas == null ){
conslole.log("ぬるぽ");
return;
}
var context = canvas.getContext('2d');
context.fillStyle = "#FF0000"; // 赤100%
context.fillRect(0, 0, 400, 300); // 描画
}
</script>
</body>
</html>
canvasを使用する手順としては、まずHTML側では
1. body内にcanvasタグをつける
idとサイズを記載する
2. scriptタグ内にcanvasに描画するjavascriptの関数を追加
今回は"draw"という関数を用意しました
3. 関数の呼び出し用のイベントを追加
今回はbodyがloadされたら関数drawを描画させる為に
<body onload="draw('canvas');">
としています
javascript側の処理は
1. document.getElementByIdで引数(今回はid:canvas)から"要素"を取得
( DOMオブジェクトと記載しているページもありますね)
var canvas = document.getElementById(id);
の部分です
2. このオブジェクト(要素・DOMオブジェクト)がnullだったら処理をしないのがお作法なので
nullチェックを行います
3. DOMオブジェクトからグラフィックコンテキストを取得
ここの引数が2dとなっていますが、現在は2dしか無い模様です
このcontextに対して描画の操作を行っていきます
4. 塗りつぶし処理
グラフィックコンテキストに対して塗りつぶしメソッドを実行します
今回はfillで塗りつぶしていますが、輪郭を描くstrokeというものも存在するようです
context.fillStyle = "#FF0000"; // 赤100%
RGB値でfillStyleプロパティ (色)を設定
"red"というように定義済のものを指定可能
rgbaの記載もできる模様
context.fillRect(0, 0, 400, 300);
描画。引数はrectのサイズ
とりあえずこんな感じで図形が描画できました
最初のひな形を基に、四角を描画するコードを書いてみます
間違っていると描画されませんので、適当にデバッグログを入れてfirefoxのコンソールで確認しながら進めます
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Canvas01 </title>
</head>
<body onload="draw('canvas');">
<H1> Canvasによる矩形の描画 </H1>
<canvas id="canvas" width="400" height="300" />
<script>
function draw(id){
console.log("ondraw : " + id);
var canvas = document.getElementById(id);
if( canvas == null ){
conslole.log("ぬるぽ");
return;
}
var context = canvas.getContext('2d');
context.fillStyle = "#FF0000"; // 赤100%
context.fillRect(0, 0, 400, 300); // 描画
}
</script>
</body>
</html>
canvasを使用する手順としては、まずHTML側では
1. body内にcanvasタグをつける
idとサイズを記載する
2. scriptタグ内にcanvasに描画するjavascriptの関数を追加
今回は"draw"という関数を用意しました
3. 関数の呼び出し用のイベントを追加
今回はbodyがloadされたら関数drawを描画させる為に
<body onload="draw('canvas');">
としています
javascript側の処理は
1. document.getElementByIdで引数(今回はid:canvas)から"要素"を取得
( DOMオブジェクトと記載しているページもありますね)
var canvas = document.getElementById(id);
の部分です
2. このオブジェクト(要素・DOMオブジェクト)がnullだったら処理をしないのがお作法なので
nullチェックを行います
3. DOMオブジェクトからグラフィックコンテキストを取得
ここの引数が2dとなっていますが、現在は2dしか無い模様です
このcontextに対して描画の操作を行っていきます
4. 塗りつぶし処理
グラフィックコンテキストに対して塗りつぶしメソッドを実行します
今回はfillで塗りつぶしていますが、輪郭を描くstrokeというものも存在するようです
context.fillStyle = "#FF0000"; // 赤100%
RGB値でfillStyleプロパティ (色)を設定
"red"というように定義済のものを指定可能
rgbaの記載もできる模様
context.fillRect(0, 0, 400, 300);
描画。引数はrectのサイズ
とりあえずこんな感じで図形が描画できました
2014年6月9日月曜日
FireFoxでJavaScriptコンソールを表示する
JavaScriptのデバッグ方法はどうするのかと思っていたのですが、ログの表示をする方法が使えそうです。
FireFoxを使っているので、JavaScript Consoleを使う事によりログ出力を行います
1. FireFoxの右上の"三"をクリックし、"開発ツール" -> "Webコンソール" を選択
(ブラウザ画面下にコンソール画面が表示される)
2. htmlのscriptタグ部分に以下の記述をする
<script>
console.log("hoge");
<script>
サンプルですが、こんな感じのテキストファイル(hoge.html)をエディタで作って、
- FireFoxにドラッグ&ドロップ
- ダブルクリック (htmlに関連付けしてある場合)
すると、consoleに文字が表示されます
---
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> ログ出力テスト </title>
</head>
<body>
<div id="section"></div>
<script>
console.log("Hello World");
</script>
</body>
</html>
FireFoxを使っているので、JavaScript Consoleを使う事によりログ出力を行います
1. FireFoxの右上の"三"をクリックし、"開発ツール" -> "Webコンソール" を選択
(ブラウザ画面下にコンソール画面が表示される)
2. htmlのscriptタグ部分に以下の記述をする
<script>
console.log("hoge");
<script>
サンプルですが、こんな感じのテキストファイル(hoge.html)をエディタで作って、
- FireFoxにドラッグ&ドロップ
- ダブルクリック (htmlに関連付けしてある場合)
すると、consoleに文字が表示されます
---
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> ログ出力テスト </title>
</head>
<body>
<div id="section"></div>
<script>
console.log("Hello World");
</script>
</body>
</html>
2014年6月8日日曜日
HTML5 最初の一歩
HTML5を調べ始めましたので再開します
ローカルでHTMLを実行する事を前提に書きます
なので、サーバー側の処理とかは後回しです
実行手順
1. エディタでhoge.htmlを作成
(文字コードはUTF-8と宣言するのでsaveする際は"UTF-8"とする)
2. hoge.htmlを以下のいずれかで実行
- エクスプローラでダブルクリックする
- ブラウザにドラッグ&ドロップ
としています
HTMLとJavaScriptの記述
- HTMLの中にJavaScriptで全部書く
- JavaScriptのファイルを分離して、最低限の記述をHTMLに書く
があるようですが、いずれもHTMLのファイルを作成するようです
最低限、以下の内容をHTMLファイルに記載します
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> タイトル </title>
</head>
<body>
<div id="xxxx"></div>
<!-- scriptから何か表示させる場合、ここのidを参照する為のグループ -->
<script>
<!-- Java scriptのコードを書く -->
</script>
</body>
</html>
scriptタグを書く位置は参照したページによってはbodyに書いているものもあるようで、動作が怪しかったらそのうち調べてみようかと思っています
ローカルでHTMLを実行する事を前提に書きます
なので、サーバー側の処理とかは後回しです
実行手順
1. エディタでhoge.htmlを作成
(文字コードはUTF-8と宣言するのでsaveする際は"UTF-8"とする)
2. hoge.htmlを以下のいずれかで実行
- エクスプローラでダブルクリックする
- ブラウザにドラッグ&ドロップ
としています
HTMLとJavaScriptの記述
- HTMLの中にJavaScriptで全部書く
- JavaScriptのファイルを分離して、最低限の記述をHTMLに書く
があるようですが、いずれもHTMLのファイルを作成するようです
最低限、以下の内容をHTMLファイルに記載します
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> タイトル </title>
</head>
<body>
<div id="xxxx"></div>
<!-- scriptから何か表示させる場合、ここのidを参照する為のグループ -->
<script>
<!-- Java scriptのコードを書く -->
</script>
</body>
</html>
scriptタグを書く位置は参照したページによってはbodyに書いているものもあるようで、動作が怪しかったらそのうち調べてみようかと思っています
2013年6月9日日曜日
画像の表示とStretch
WPFで画像の表示をしてみます
固定の画像を表示させる場合は、xamlに以下の記述をするだけです
<Image Source="C:\Users\hogehoge\Pictures\110929-193431.jpg">
Stretchプロパティにより表示領域に対する表示方法を指定することができます
None(左上) : そのままの画像の大きさ。表示領域が画像より小さいと一部のみの表示
Fill(右上) : 上下左右を表示領域にあわせて拡大縮小。縦横比も保持されない。
Uniform(左下) : 表示領域に縦横比を保持して表示。これが一番使いそう!?
UniformToFill(右下) : 縦横比を保持した最大の表示
といったところの様子
--- xamlのコード (ファイル名(パス)の指定はお好みの画像にて!)
<Window x:Class="Graphic.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="512" Width="1024">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="256" />
<RowDefinition Height="256" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="512" />
<ColumnDefinition Width="512" />
</Grid.ColumnDefinitions>
<Image Source="C:\Users\hogehoge\Pictures\110929-193431.jpg" Stretch="None" Grid.Column="0" Grid.Row="0"/>
<Image Source="C:\Users\hogehoge\Pictures\110929-193431.jpg" Stretch="Fill" Grid.Column="1" Grid.Row="0"/>
<Image Source="C:\Users\hogehoge\Pictures\110929-193431.jpg" Stretch="Uniform" Grid.Column="0" Grid.Row="1"/>
<Image Source="C:\Users\hogehoge\Pictures\110929-193431.jpg" Stretch="UniformToFill" Grid.Column="1" Grid.Row="1"/>
</Grid>
</Window>
固定の画像を表示させる場合は、xamlに以下の記述をするだけです
<Image Source="C:\Users\hogehoge\Pictures\110929-193431.jpg">
Stretchプロパティにより表示領域に対する表示方法を指定することができます
None(左上) : そのままの画像の大きさ。表示領域が画像より小さいと一部のみの表示
Fill(右上) : 上下左右を表示領域にあわせて拡大縮小。縦横比も保持されない。
Uniform(左下) : 表示領域に縦横比を保持して表示。これが一番使いそう!?
UniformToFill(右下) : 縦横比を保持した最大の表示
といったところの様子
--- xamlのコード (ファイル名(パス)の指定はお好みの画像にて!)
<Window x:Class="Graphic.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="512" Width="1024">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="256" />
<RowDefinition Height="256" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="512" />
<ColumnDefinition Width="512" />
</Grid.ColumnDefinitions>
<Image Source="C:\Users\hogehoge\Pictures\110929-193431.jpg" Stretch="None" Grid.Column="0" Grid.Row="0"/>
<Image Source="C:\Users\hogehoge\Pictures\110929-193431.jpg" Stretch="Fill" Grid.Column="1" Grid.Row="0"/>
<Image Source="C:\Users\hogehoge\Pictures\110929-193431.jpg" Stretch="Uniform" Grid.Column="0" Grid.Row="1"/>
<Image Source="C:\Users\hogehoge\Pictures\110929-193431.jpg" Stretch="UniformToFill" Grid.Column="1" Grid.Row="1"/>
</Grid>
</Window>
2013年6月4日火曜日
TextBlockの文字を修飾する
文字を修飾する方法の良いサンプルがMSDNに掲載されていましたので真似してみます
ボタンの文字を"Run"で修飾してみます
- Runで文字の属性変更
- <Run TextDecorations="****">で修飾
の模様
日本語ではベースラインとアンダーラインの区別はわかりにくいですが、アルファベットを使う場合は効果的ですね
<Window x:Class="StringDecorate.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Width="200" Height="150">
<TextBlock>
ふつーのTextBlock<LineBreak />
<Run FontWeight="Bold" FontSize="13">フォントサイズ+Bold</Run><LineBreak />
<Run TextDecorations="Underline">アンダーライン</Run><LineBreak />
<Run TextDecorations="Strikethrough">打消し線</Run><LineBreak />
<Run TextDecorations="Overline">オーバーライン</Run><LineBreak />
<Run TextDecorations="Baseline">gベースライン</Run>
<Run TextDecorations="Underline">gアンダーライン</Run>
</TextBlock>
</Button>
</Grid>
</Window>
詳しくはMSDNのこちら参照
http://code.msdn.microsoft.com/windowsdesktop/XAML-WPF-165daa55
ボタンの文字を"Run"で修飾してみます
- Runで文字の属性変更
- <Run TextDecorations="****">で修飾
の模様
日本語ではベースラインとアンダーラインの区別はわかりにくいですが、アルファベットを使う場合は効果的ですね
<Window x:Class="StringDecorate.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Width="200" Height="150">
<TextBlock>
ふつーのTextBlock<LineBreak />
<Run FontWeight="Bold" FontSize="13">フォントサイズ+Bold</Run><LineBreak />
<Run TextDecorations="Underline">アンダーライン</Run><LineBreak />
<Run TextDecorations="Strikethrough">打消し線</Run><LineBreak />
<Run TextDecorations="Overline">オーバーライン</Run><LineBreak />
<Run TextDecorations="Baseline">gベースライン</Run>
<Run TextDecorations="Underline">gアンダーライン</Run>
</TextBlock>
</Button>
</Grid>
</Window>
詳しくはMSDNのこちら参照
http://code.msdn.microsoft.com/windowsdesktop/XAML-WPF-165daa55
登録:
投稿 (Atom)
