C#后期绑定问题
private void button3_Click(object sender, EventArgs e){
object comObject;
System.Type comObjectName;
//要获取的类型的 ProgID。
string progID = "Execl.Application";
//与指定 ProgID 关联的类型,即获取相应的Com对象
comObjectName = System.Type.GetTypeFromProgID(progID);
//创建Com的实例
if (comObjectName == null)
{
MessageBox.Show("PC hasn't install Excel,can't export to excel", "提示");
return;
}
comObject = Activator.CreateInstance(comObjectName);
object Missing = System.Reflection.Missing.Value;
object objWorkbooks = null;
object objWorkbook = null;
object objWorkSheet = null;
object objRange = null;
object objRow = null;
object[] parameters = null;
try
{
objWorkbooks = comObjectName.InvokeMember("WorkBooks", System.Reflection.BindingFlags.GetProperty, null, comObject, null);
parameters = new object[1];
parameters[0] = "c:\\Book1.xls";
objWorkbook = comObjectName.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, objWorkbooks, parameters);
parameters = new object[1];
parameters[0] = 1;
objWorkSheet = comObjectName.InvokeMember("Worksheets", System.Reflection.BindingFlags.GetProperty, null, objWorkbook, parameters);
我怎么样才可以获取记录的行数,列数?
parameters = new object[2];
parameters[0] ="A1:G42";
parameters[1] = System.Reflection.Missing.Value;
objRange = comObjectName.InvokeMember("Range", System.Reflection.BindingFlags.GetProperty, null, objWorkSheet, parameters);
parameters = new object[1];
//parameters[0] = "Cells";
//parameters[0] = "Rows";
objRow = comObjectName.InvokeMember("Column", System.Reflection.BindingFlags.GetProperty, null, objRange, null);
int intRowCount = 0;
intRowCount = (int)objRow; ;
MessageBox.Show("The row of recordset is " + intRowCount, "Information");
}
catch (Exception ex)
{
throw ex;
}
finally
{
ReleaseComObject(objWorkbooks);
ReleaseComObject(objWorkbook);
ReleaseComObject(objWorkSheet);
if (comObject != null)
{
comObjectName.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, comObject, null);
ReleaseComObject(comObject);
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(comObject);
comObject = null;
}
} --------------------编程问答-------------------- 顶下。
补充:.NET技术 , 非技术区