Skip to content

Instantly share code, notes, and snippets.

@saitohiroaki1122
Created April 9, 2018 09:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save saitohiroaki1122/aff95811788cf83348c2bf3ed7893bbf to your computer and use it in GitHub Desktop.
Save saitohiroaki1122/aff95811788cf83348c2bf3ed7893bbf to your computer and use it in GitHub Desktop.
GH C# Component tips_ExcelのデータをGrasshopperに読み込む(任意のExcelファイルがあらかじめ開かれていることを前提とした記述)
private void RunScript(bool getParam, string filePath, ref object A, ref object B, ref object C)
{
if(getParam)
{
Microsoft.Office.Interop.Excel.Application exlApp =
(Microsoft.Office.Interop.Excel.Application)
System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
//今開いているExcelファイルを取得する
Microsoft.Office.Interop.Excel.Workbook wb = exlApp.ActiveWorkbook;
//シートの情報を取得する
Microsoft.Office.Interop.Excel.Worksheet ws1 = (Worksheet) wb.Sheets[1];
//Type.Missingの説明について
//http://d.hatena.ne.jp/ron_s-nakazawa/20120924/1348452525#20120924f1
ws1.Select(Type.Missing);
Range range23 = (Range) ws1.Cells[2, 3];
A = range23.Value;
Range range33 = (Range) ws1.Cells[3, 3];
B = range33.Value;
//Cellsプロパティよりもget_RangeメソッドでRangeを取得した方が速いという話も・・・(未検証)。
//こちらは単数セルから複数セルまで色んな方法でのセルの取得が可能。
//参考:【NetOffice】Rangeメソッドでセルを指定する(単一・範囲・複数) http://pro.art55.jp/?eid=1304060
C = ws1.get_Range("A1", "C3").Value;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment