ラベル DataGridView の投稿を表示しています。 すべての投稿を表示
ラベル DataGridView の投稿を表示しています。 すべての投稿を表示

2011年2月27日日曜日

データセルの変更

dataGridView1[0, 0]->Value = "0,0を変更"; // 1列目の値
//dataGridView1.Rows[行番号]->Cells[列番号]
dataGridView1->Rows[1]->Cells[1]->Value = "1,1を変更";

ヘッダーテキストの変更

dataGridView1->Columns[0]->HeaderText = "1列目の見出し";

行、列を生成する

dataGridView1->ColumnCount = 5;

dataGridView1->Columns[ 0 ]->Name = "1行目";
dataGridView1->Columns[ 1 ]->Name = "2行目";
dataGridView1->Columns[ 2 ]->Name = "3行目";
dataGridView1->Columns[ 3 ]->Name = "4行目";
dataGridView1->Columns[ 4 ]->Name = "5行目";

array<String^>^row0 = {"001","A","January","Sunday","one"};
array<String^>^row1 = {"002","B","February","Monday","two"};
array<String^>^row2 = {"003","C","March","Tuesday","three"};
array<String^>^row3 = {"004","D","April","Wednesday","four"};
array<String^>^row4 = {"005","E","May","Thursday","five"};
array<String^>^row5 = {"006","F","June","Friday","six"};

DataGridViewRowCollection^ rows = dataGridView1->Rows;
rows->Add( row0 );
rows->Add( row1 );
rows->Add( row2 );
rows->Add( row3 );
rows->Add( row4 );
rows->Add( row5 );
rows->Add( "007","G","July","Saturday","Saturday" );

グラフの目盛り表示の指定

ws->Range["B1", Type::Missing]->EntireColumn->NumberFormat = "#,##0.00";
safe_cast(ch->Axes(XlAxisType::xlValue, XlAxisGroup::xlPrimary))->TickLabels->NumberFormat = "#,##0";

グラフを出力


Microsoft::Office::Interop::Excel::Application^ ap1 = gcnew Microsoft::Office::Interop::Excel::ApplicationClass();

Workbook^ wb = ap1->Workbooks->Add(Type::Missing);

Worksheet^ ws  = static_cast<Worksheet^>(ap1->ActiveSheet);

ws->Name = "ワークシート名";

//行、列
ws->Cells[1,1] = "1";
ws->Cells[1,2] = "10";
ws->Cells[2,1] = "2";
ws->Cells[2,2] = "20";
ws->Cells[3,1] = "3";
ws->Cells[3,2] = "30";

//ワークシート上のすべての埋め込みグラフのコレクション (Microsoft.Office.Interop.Excel.ChartObjects)を表すオブジェクトを取得します。
ChartObjects^ chObjs = safe_cast<ChartObjects^>(ws->ChartObjects(Type::Missing));

//新しい埋め込みグラフを作成します。ChartObject オブジェクトを取得します。 
//Add(Left,Top,Width,Height)
ChartObject^ chObj = chObjs->Add(130, 50, 300, 300);

//ブック内のグラフを表します。
Chart^ ch = chObj->Chart;

//セルまたはセルの範囲を表す Microsoft.Office.Interop.Excel.Range オブジェクトを取得します。 
Range^ rn = ws->Range["A2:B3", Type::Missing];

//指定の Chart コントロールのプロパティを変更します。
ch->ChartWizard(rn->CurrentRegion,    //Source 新しいグラフの参照元データが格納されている範囲です。

    Constants::xlColumn,            //Gallery グラフの種類です。

    Type::Missing,                    //Format 組み込みの自動フォーマットのオプション番号です

    XlRowCol::xlColumns,            //PlotBy 各系列のデータが行と列のどちらにあるかを指定します

    1,                                //CategoryLabels 項目軸ラベルが含まれている、参照元の範囲内の行または列の番号を指定する整数です

    Type::Missing,                    //SeriesLabels 系列ラベルが含まれている、参照元の範囲内の行または列の番号を指定する整数です。

    false,                            //HasLegend 凡例を含める場合は true です。

    "グラフタイトル",                //Title Chartコントロールのタイトルのテキストです。

    "X軸タイトル",                    //CategoryTitle 項目軸のタイトルのテキストです。

    "Y軸タイトル",                    //ValueTitle 数値軸のタイトルのテキストです。

    Type::Missing);                    //ExtraTitle 系列軸のタイトル

ap1->Visible = true;

2011年2月26日土曜日

エクセルにすべて出力

Microsoft::Office::Interop::Excel::Application^ ap1 = gcnew Microsoft::Office::Interop::Excel::ApplicationClass();

//ヘッダーテキストをエクセルに送る
for(int i = 1; i < dataGridView1->Columns->Count + 1 ; i++){
   ap1->Cells[1,i] = dataGridView1->Columns[i-1]->HeaderText;
}

//行と列をエクセルに送る
for( int i = 0 ; i < (dataGridView1->Rows->Count-1) ; i++ ){
   for( int j = 0 ; j < (dataGridView1->Columns->Count) ; j++ ){    
   ap1->Cells[i + 2 , j + 1] = dataGridView1->Rows[i]->Cells[j]->Value->ToString();
   }
}

ap1->Visible = true;

エクセルに出力

1.参照の追加

2.Main の Application が Excel::Application とバッティングするので名前空間を指定
ソリューションエクスプローラから、プロジェクト名.cpp を開いてコードを入力します。
// コントロールが作成される前に、Windows XP ビジュアル効果を有効にします
System::Windows::Forms::Application::EnableVisualStyles();
System::Windows::Forms::Application::SetCompatibleTextRenderingDefault(false); 

// メイン ウィンドウを作成して、実行します
System::Windows::Forms::Application::Run(gcnew Form1());


あいまいなシンボルです。と怒られたら
3.コードの入力
 using namespace Microsoft::Office::Interop::Excel;
Microsoft::Office::Interop::Excel::Application^ ap1 = gcnew Microsoft::Office::Interop::Excel::ApplicationClass();

Workbook^ wb = ap1->Workbooks->Add(Type::Missing);

Worksheet^ ws  = static_cast<Worksheet^>(ap1->ActiveSheet);

ws->Name = "ワークシート名";
ws->Cells[1,1] = "セル1,1";
ap1->Visible = true;