请问在.net中如何打开一个已有的excel文件 请问在.net中如何打开一个已有的excel文件 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 using System.Data.OleDb;using Excel; private void Connection()//连接要读取数据的Excel表 { try { string fileName; DataSet myDataSet= new DataSet(); OpenFileDialog fileChooser=new OpenFileDialog(); DialogResult result1=fileChooser.ShowDialog(); fileChooser.CheckFileExists=false; if(result1==DialogResult.Cancel) { return; } fileName=fileChooser.FileName; if(fileName==""||fileName==null) { MessageBox.Show("不合法的文件名!","错误信息",MessageBoxButtons.OK,MessageBoxIcon.Error); } else { output=new FileStream(fileName,FileMode.OpenOrCreate,FileAccess.ReadWrite); ArrayList ary=new ArrayList(); GetExecl(ref ary, fileName); string oleDBConnString = String.Empty; oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;"; oleDBConnString += "Data Source="; oleDBConnString += fileName; oleDBConnString += ";Extended Properties=Excel 8.0;"; System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(oleDBConnString);//连接 conn.Close(); conn.Open(); string str="SELECT * FROM "+"["+ary[0].ToString()+"$"+"]"; OleDbDataAdapter myCommand = new OleDbDataAdapter(str,conn); myCommand.Fill(myDataSet,"table1");//将数据填充到数据集合里 conn.Close(); output.Close(); GC.Collect(); }private static ArrayList GetExecl(ref ArrayList ary,string Url)//获得Excel文件中的第一个表的名称 { string filepath=@Url; Object refmissing = System.Reflection.Missing.Value; Excel._Application exc = new Excel.ApplicationClass(); exc.Visible = false; Excel.Workbooks workbooks = exc.Workbooks; workbooks.Open(filepath,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing); Excel.Worksheet sheet = (Excel.Worksheet)exc.Worksheets.get_Item(1); ary.Add(sheet.Name.ToString()); exc.Application.Quit(); workbooks.Close(); GC.Collect(); return ary; } C#在wince如何操作网卡(禁用/启用) 桌面程序datagrid分页 请教一个登陆的问题 在VS中怎样实现这种进度条效果? COOKIE的Expires不能保存是什么问题? 为什么点击gridview中某行的选择按钮 另一个gridview就消失? C#连接ACCESS的一个问题 关于C#中的网络通信问题,求指点。 求winform下支付宝声波支付demo C#好还是VB#好?二者之间有何区别和联系? VS2005中对DataGridView+CheckBox的数据进行选择性的删除 请说一下大家C#都是看哪本书入门的啊 !
using Excel;
private void Connection()//连接要读取数据的Excel表
{
try
{
string fileName;
DataSet myDataSet= new DataSet();
OpenFileDialog fileChooser=new OpenFileDialog();
DialogResult result1=fileChooser.ShowDialog();
fileChooser.CheckFileExists=false;
if(result1==DialogResult.Cancel)
{
return;
}
fileName=fileChooser.FileName;
if(fileName==""||fileName==null)
{
MessageBox.Show("不合法的文件名!","错误信息",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
else
{
output=new FileStream(fileName,FileMode.OpenOrCreate,FileAccess.ReadWrite);
ArrayList ary=new ArrayList();
GetExecl(ref ary, fileName);
string oleDBConnString = String.Empty;
oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;";
oleDBConnString += "Data Source=";
oleDBConnString += fileName;
oleDBConnString += ";Extended Properties=Excel 8.0;";
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(oleDBConnString);//连接
conn.Close();
conn.Open();
string str="SELECT * FROM "+"["+ary[0].ToString()+"$"+"]";
OleDbDataAdapter myCommand = new OleDbDataAdapter(str,conn);
myCommand.Fill(myDataSet,"table1");//将数据填充到数据集合里
conn.Close();
output.Close();
GC.Collect();
}private static ArrayList GetExecl(ref ArrayList ary,string Url)//获得Excel文件中的第一个表的名称
{
string filepath=@Url;
Object refmissing = System.Reflection.Missing.Value;
Excel._Application exc = new Excel.ApplicationClass();
exc.Visible = false;
Excel.Workbooks workbooks = exc.Workbooks;
workbooks.Open(filepath,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing,refmissing);
Excel.Worksheet sheet = (Excel.Worksheet)exc.Worksheets.get_Item(1);
ary.Add(sheet.Name.ToString());
exc.Application.Quit();
workbooks.Close();
GC.Collect();
return ary;
}