获取excel某一列值 C#如何获取excel某一列的所有值,并把它存放在一个数组里面?获取列值最好可以指定范围, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1,定义OledbConnection连接到Excel;2,打开连接,读取数据,定义一个ArrayList,将数据放到ArrayList中(ArrayList.Add) Excel.Range range = oSheet1.get_Range("A1", "A10"); 通过oledb,直接把excel读取到dataset中,客户端无需安装excel程序参考http://blog.csdn.net/jinjazz/archive/2007/12/11/1930455.aspx http://blog.csdn.net/smilebrid/archive/2008/04/18/2303629.aspx代码并不是完全按你的意思的,但稍改动一下就能如你所愿了 7.8楼的方法我不太适用,我要把几个表的N个列导出来,生成一个新的表,你们的方法我不太适用。现在功能我已经实现LE ,就是速度慢,1000个数据要8s左右,太慢了想先把数据导到数组里面再进行操作。 怎么会不适用,数组能做的,dataset都能做到。 一个表你的方法没问题,多个表不行,速度更慢,能不能把一个excel的所有数据导入一个二维数组? select *改成 select 字段名 不就可以了 这是后你可以把excel看作是数据库,可以做关联查询比如你的excel两个表格:sheet1a b1 ff2 fffsheet2a b1 rr2 rrr---可以用关联查询出来:类似private void Form1_Load(object sender, EventArgs e) { DataSet ds = ExcelToDS(@"c:\aa.xls","test"); MessageBox.Show(ds.GetXml()); } public static DataSet ExcelToDS(string Path,string TableName) { DataSet ds = new DataSet(); try { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;"; OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); string strExcel = ""; OleDbDataAdapter myCommand = null; strExcel = "select a.b,b.b from [sheet1$] a inner join [sheet2$] b on a.a=b.a"; myCommand = new OleDbDataAdapter(strExcel, strConn); myCommand.Fill(ds, TableName); } catch(Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } return ds; } 这样就可以把sheet1的b列和sheet2的b列直接合并了 一个简单的问题 程序之间传值的问题 命名空间不能直接包含字段或方法之类的成员 关于asp.net日历控件 继续问调出“SDK命令提示” word操作:怎么处理word里面的一段文字的进行处理 小妹请教:donetfx.exe有没有合并模块?winform打包用msde的合并模块,安装成功,但不启动,up有分 再问一次被提过n次问的问题(文本框内容格式保存的问题) Socket 无法连接的问题,急急急。。。 DataGrid只能显示设置了DataGridColumnStyle的列吗? 我想通过ajax返回一个二维数组该怎实现不懂 texBox的录入的信息如何存入数据库?????
2,打开连接,读取数据,定义一个ArrayList,将数据放到ArrayList中(ArrayList.Add)
参考
http://blog.csdn.net/jinjazz/archive/2007/12/11/1930455.aspx
怎么会不适用,数组能做的,dataset都能做到。
sheet1
a b
1 ff
2 fffsheet2a b
1 rr
2 rrr---
可以用关联查询出来:类似private void Form1_Load(object sender, EventArgs e)
{
DataSet ds = ExcelToDS(@"c:\aa.xls","test");
MessageBox.Show(ds.GetXml());
}
public static DataSet ExcelToDS(string Path,string TableName)
{
DataSet ds = new DataSet();
try
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = "";
OleDbDataAdapter myCommand = null;
strExcel = "select a.b,b.b from [sheet1$] a inner join [sheet2$] b on a.a=b.a";
myCommand = new OleDbDataAdapter(strExcel, strConn); myCommand.Fill(ds, TableName);
}
catch(Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
return ds;
}