C#用excel进行批量导入的时候,获取excel中的内容放在dataset中有个问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#用excel进行批量导入的时候,获取excel中的内容放在dataset中有个问题相关的知识,希望对你有一定的参考价值。
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;IMEX=1'";
// string strCon = @"Provider=Microsoft.jet.OLEDB.4.0;Data Source = " + filepath + ";Extended Properties='text;HDR=No;IMEX=1;FMT=Delimited(,)'";
System.Data.OleDb.OleDbConnection Conn = new System.Data.OleDb.OleDbConnection(strCon);
string strCom = "SELECT * FROM [Sheet1$]";
Conn.Open();
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, Conn);
DataSet ds = new DataSet();
myCommand.Fill(ds, "[Sheet1$]");
Conn.Close();
return ds;
里面的string strCom = "SELECT * FROM [Sheet1$]";
[Sheet1$]这个是写死的,能不能把它写活了,就是不管这个sheet1叫什么名字都默认它取第一个名字的内容放到dataset中,谢谢
能不能让它自动扑获第一个sheet1的名字,然后加到上面
string strCom="SELECT * FROM "+[Sheet1$];这样就是活的了
还有sheet1$必须是你数据库中的表明啊!
myCommand.Fill(ds, "[Sheet1$]"); 这个就不同了
如何将excel中的数据导入hive仓库中
参考技术A将存放在excel表中的数据如何导入到hive中,首先前提是excel表中数据类型以及长度要和hive仓库中表的字段属性一致,否则会报异常。其次因为建表的时候,已经定义了表的分割符号(row
format
delimited
fields
terminated
by
‘,’),所以不能直接将excel表格中数据导入的hive仓库中。处理方式如下:
先将excel表中数据另存转化为data.csv格式,转化为.csv格式的文件默认就是用“,”进行分割的,可以用notepad++打开data.csv格式查看。然后再讲数据导入到hive仓库中即可。但是执行如下导入语句时,发现报错,显示Wrong
file
format。
检查以后发现,因为在创建表格时,使用的是RCFILE存储格式
STORED
AS
INPUTFORMAT
'org.apache.hadoop.hive.ql.io.RCFileInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.RCFileOutputFormat'
而导入到是TextFile文件格式,所以报错,解决办法建表的格式默认使用TextFile格式即可。
如何将文件转化为rcfile文件格式:
(1)hive
中直接 通过textfile表进行insert转换,比如通过如下将textfile数据导入到rcfile中。
insert
overwrite
table
http_RCTable
partition(dt='2013-09-30')
select
p_id,tm,idate,phone
from
tmp_testp
where
dt='2013-09-30';
(2)使用mapreduce将普通的文件压缩成RCFile,并且再读取RCFile文件。
以上是关于C#用excel进行批量导入的时候,获取excel中的内容放在dataset中有个问题的主要内容,如果未能解决你的问题,请参考以下文章