|
分類:[C#]
開発環境 Windows7Pro VisualStudio2008 C# EXCEL2007
実機windowsXP SP3 EXCEL2000
遅延バインディングを使ってAutoFitをさせようとしました。がうまくいきません。
public static void EX_OpenBook(string FileName, int SheetNo)
{
Type classType = Type.GetTypeFromProgID("Excel.Application");
app = Activator.CreateInstance(classType);
books = app.GetType().InvokeMember("Workbooks", BindingFlags.GetProperty, null, app, null);
parameters = new object[13];
parameters[0] = FileName;
for (int CT1 = 1; CT1 < 13; CT1++) { parameters[CT1] = Type.Missing; }
book = books.GetType().InvokeMember("Open", BindingFlags.InvokeMethod, null, books, parameters);
sheets = book.GetType().InvokeMember("Sheets", BindingFlags.GetProperty, null, book, null);
sheet = sheets.GetType().InvokeMember("Item", BindingFlags.GetProperty, null, sheets, new object[] { SheetNo });
}
でファイルをひらき
public static void EX_AutoFit(string EndCell)
{
Cells = sheet.GetType().InvokeMember("Cells", BindingFlags.GetProperty, null, sheet, null);
Range = Cells.GetType().InvokeMember("Item", BindingFlags.GetProperty, null, Cells, new object[] { "A1", EndCell});
columns = Range.GetType().InvokeMember("Columns", BindingFlags.SetProperty, null, app, null);
Range.GetType().InvokeMember("AutoFit", BindingFlags.SetProperty, null, columns, null);
}
でAutoFitさせようとしていますが。Autofitでエラーで止まってしまいます。AutoFitはEXCELの関数なのでEXCELにキャストしなければならないとかいてありましたが、その
あたりができていないと思います。どう書いたらよいでしょう? よろしくお願いいたします。
|