在.net中如何打开调用excel程序打开一个excel文件? 就像直接双击这个文件一样。
在.net中如何打开调用excel程序打开一个excel文件? 就像直接双击这个文件一样。
------解决方案--------------------using System;
namespace ConsoleApplication1
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
string filePath=@ "C:\test.xls ";
object missing=System.Reflection.Missing.Value;
Excel.ApplicationClass excelApp=new Excel.ApplicationClass();
Excel.Workbook workbook=excelApp.Workbooks.Open(filePath,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);
excelApp.Visible=true;
}
}
}
------解决方案--------------------System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = @ "c:\a.excel ";
process.Start();
------解决方案--------------------asp.net在后台调用的excel是没有界面的.
------解决方案--------------------using System;
using System.Reflection;
using System.Windows;
using System.Windows.Forms;
class TestLateBound:System.Windows.Forms.Form
{
private System.Windows.Forms.Button myButton;
public TestLateBound()
{
myButton=new Button();
myButton.Text= "调用EXCEL ";
myButton.Location=new System.Drawing.Point(100,100);
myButton.Click+=new System.EventHandler(TestBound);
Controls.Add(myButton);
Text= "测试后期绑定 Excel Application ";
}
public void TestBound(object sender,System.EventArgs ef)
{
Type myExcel;
myExcel=Type.GetTypeFromProgID( "Excel.Application ");
object objExcel;
objExcel=Activator.CreateInstance(myExcel);
object[] param=new object[1];
param[0]=true;
try
{
myExcel.InvokeMember( "Visible ",BindingFlags.SetProperty,null,objExcel,param); //和VC++中差不多,需要将参数封装为数组传入
}
catch (Exception e)
{
MessageBox.Show (e.ToString());
}
}
public void InitializeComponent()
{
myButton = new System.Windows.Forms.Button();
SuspendLayout();
//
// myButton
//
myButton.Location = new System.Drawing.Point(128, 72);
myButton.Name = "myButton ";
myButton.TabIndex = 0;
myButton.Text = "button1 ";
myButton.Click += new System.EventHandler(myButton_Click);
//
// TestLateBound
//
AutoScaleBaseSize = new System.Drawing.Size(6,14);
ClientSize = new System.Drawing.Size(292,266);
Controls.Add(myButton);
Name = "TestLateBound ";
Load+=new EventHandler(TestLateBound_Load);
ResumeLayout(false);
}
public static void Main()
{
Application.Run(new TestLateBound());
}
private void myButton_Click(object sender, System.EventArgs e)
{
}