在asp.net mvc3 中获得execl当前行有多少列怎么写,(做考试系统的填空题导入,很麻烦,不知哪位大神,有好的方法告诉我啊!)
ExcelHelper exh = new ExcelHelper();
DataTable dt = exh.InputExcel(filepath, "学生"); //读取源数据
if (dt.Columns.Count == 15) //检测列是否满足条件
这是获得第一行的吧,我每一行的有数据的列都不相同啊
@菇凉很好: 这么说吧,列数是你Excel里最多的一行的。(dt.Columns.Count读取之后这一段就是获得最后的列。
1 2 第一列
1 2 3 4
1 2
如果你excel是这样的,那么最后读取的时候会有4列。3行。
@神叨大侠: 恩恩,那怎样获得第一行有3列,第二行有4列,第三行有2列勒,怎么获得每一行的列?
@菇凉很好: 列都是一样的啊,我知道了,最后的列就是,我QQ上发你吧= -!
NPOI,EPPlus 读取Excel文件,并获取数据,和mvc没直接关系。
我没有用NPOI啊
@菇凉很好: 你是用的Office组件?那拿到sheet之后,有获取数据数量的属性啊~
@幻天芒:
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + savePath + ";" + "Extended Properties=Excel 8.0";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter("select * from [Sheet1$]", strConn);
DataSet myDataSet = new DataSet();
try
{
myCommand.Fill(myDataSet, "Fill");
}
catch (Exception ex)
{
ViewBag.error = ex.Message;
return RedirectToAction("Fill");
}
DataTable table = myDataSet.Tables["Fill"].DefaultView.ToTable();
你说的是这里吗?
@菇凉很好: 额...你是用的OLEDB啊,那你直接写sql语句求count了。select count(*) from [Sheet1$]
@幻天芒: 获得当前行的也是这样写吗?这个我不懂啊
@菇凉很好: 数据不大的话,你直接读取到DataTable吧,和数据库的操作是一样的。
@幻天芒: 不太懂你的意思,额
@菇凉很好: 你的代码中的myDataSet.Tables[0].Rows.Count
@幻天芒: 这总是获得第一行的,
不使用楼上那些,那就用微软自家的呗
恩恩,是用的微软自带的,就是不知道怎么获得当前行的多少列啊
@菇凉很好:
Worksheet shs = wb.Worksheets["Sheet1"]; int count = shs.UsedRange.Columns.Count;
@Yu: 这个wb是什么?