![]()
Range オブジェクトの作成に数値を使用します
プログラミングで処理を行うので、Range("A1:A20") というような表現を使わずに、Cells(行,列) を使って Range オブジェクトを作成しています。
using System;
namespace excel_2020_11_26
{
class Program
{
static void Main(string[] args)
{
// Excel アプリケーション
dynamic ExcelApp = Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application"));
// Excel のパス
string path = Environment.CurrentDirectory + @"\sample.xlsx";
// Excel を表示( 完成したらコメント化 )
ExcelApp.Visible = true;
// 警告を出さない
ExcelApp.DisplayAlerts = false;
try
{
// ****************************
// ブック追加
// ****************************
dynamic Book = ExcelApp.Workbooks.Add();
// 通常一つのシートが作成されています
dynamic Sheet = Book.Worksheets(1);
// ****************************
// シート名変更
// ****************************
Sheet.Name = "C#の処理";
// ****************************
// セルに値を直接セット
// ****************************
for (int i = 1; i <= 10; i++)
{
Sheet.Cells(i, 1).Value = "処理 : " + i;
}
// ****************************
// 1つのセルから
// AutoFill で値をセット
// ****************************
Sheet.Cells(1,2).Value = "子";
// 基となるセル範囲
dynamic SourceRange = Sheet.Range(Sheet.Cells(1, 2), Sheet.Cells(1, 2));
// オートフィルの範囲(基となるセル範囲を含む )
dynamic FillRange = Sheet.Range(Sheet.Cells(1, 2), Sheet.Cells(10, 2));
SourceRange.AutoFill(FillRange);
// ****************************
// 保存
// ****************************
Book.SaveAs(path);
}
catch (Exception ex)
{
ExcelApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelApp);
Console.WriteLine(ex.Message);
return;
}
ExcelApp.Quit();
// 解放
System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelApp);
Console.WriteLine("処理を終了します");
}
}
}
関連する記事
JScript : Excel の新しいブックのデフォルトのシートのセルに直接値をセットして、オートフィルを Range オブジェクトから実行する関連する Microsoft ドキュメント
Application オブジェクト Workbook オブジェクトのコレクション Workbook オブジェクト Worksheet オブジェクトのコレクション Worksheet オブジェクト Cells プロパティ
|
|
【VS(C#)の最新記事】
- Replit : cs-list
- C#( Form ) : ウインドウ枠の無い吹き出しの作成
- C# のタプル( Visual Studio 2017 でテスト )
- C# : インターネット上の JSON ファイルのフォーマットを クラスとして定義して1行でオブジェクト化して使用する
- C# の文法的文字列処理
- C# : System.Data.Odbc によるデータベースのテーブルからのデータ取得処理( サンプルの SQL は MySQL 用です )
- C# : Excel を データベースとして DataGridView に読み込む
- C# : dynamic 型 による Excel へのアクセス
- C# : フォームを表示せずに、通知領域にアイコンを表示させる常駐プログラム
- Microsoft Access に対してSQLを入力してその結果を DataGridView に表示する最も簡単なコード
- C# : System.Data.Odbc データ取得(SELECT)処理( MySQL ) : ※ using 無し( Dispose 実行 )
- C# : SQL 文を外部テキストにして、String.Format でデータ部分を置き換えて利用する
- C# コンソールアプリを AN HTTPD で実行
- C# : SQLServer( SQLExpress ) の SMO を使用してテーブルの CREATE TABLE 文 を取得する
- C# : DataGridView に TKMP.DLL の IMAP(POP3) で受信したメールを非同期に表示する( 添付ファイルも取得 )
- C# : TKMP.DLLを使った、メール送信テンプレート
- C# と VB.net : TKMP.DLL を使って IMAP でメール本文の一覧を取得する( コンソール )
- C# でDataTable と DataSource を使用して、DataGridView にデータを表示するテンプレート( 行をダブルクリックしてダイアログを表示して行データを処理 )
- (C#) / VS2010 または VS2012 : TKMP.DLL(3.1.2 または 3.1.8)を使った、『さくらインターネット』用メール送信テンプレート
- C# でDXライブラリを使って簡単なシューティングをクラス化して標準化 / メインループとプレイヤー (4)




18年前より IE を使用して、イントラネットの IIS のページ上に表示されたデータを Excel に転送して印刷に使うという処理を今も続けています。Excel でフォーマットを作っておくと、イレギュラーが発生しても Excel を直接変更すれば対応可能です。
大量な単独データが印刷が必要な場合はさすがに PDF( TCPDF ) を使用していますが、単票なら Excel に勝るものはありません。
IIS のタイムアウトを避けるような処理であれば、ADO で直接データーベースにアクセスして様々なデータをローカルに出力できます。
また、Excel のデータを複数セルでコピーして、IE11 の入力フィールドに貼り付けたり直接初期データを登録する事も可能になります。
さらにこれらのページ処理は、HTML だけで完結できる場合は拡張子を .hta として使う事もできます( 最初から HTA 目的で作成するのならば、IE11 の設定は必要ありませんが、HTA のデフォルトを最新にしておく為の META 要素が必要になります。 )

ドライバが無い場合は
この HTA を localhost の IE11 で実行する事ができます。その場合は、IE11 の設定が必要です。
ドメインID は自分のアカウントです。ドメイン番号は、ロリポップで選んだ自分のドメインをコンボボックスで選択して Chrome の コンソールで以下のように入力してください
アカウント文字列は ユーザー名( DB ページでの呼び名 )です。サーバの選択は自分のサーバをコンボボックスで選択して Chrome の コンソールで以下のように入力してください
※
GAS :
シート名は メール送信となっており、

