首页 新闻 会员 周边

execl当前行有多少列怎么写

0
悬赏园豆:30 [已解决问题] 解决于 2014-12-04 17:45

在asp.net mvc3 中获得execl当前行有多少列怎么写,(做考试系统的填空题导入,很麻烦,不知哪位大神,有好的方法告诉我啊!)

菇凉很好的主页 菇凉很好 | 初学一级 | 园豆:3
提问于:2014-12-03 09:07
< >
分享
最佳答案
0

                    ExcelHelper exh = new ExcelHelper();
                    DataTable dt = exh.InputExcel(filepath, "学生"); //读取源数据
                    if (dt.Columns.Count == 15)                             //检测列是否满足条件

收获园豆:20
大楚打码人 | 老鸟四级 |园豆:4313 | 2014-12-03 15:12

这是获得第一行的吧,我每一行的有数据的列都不相同啊

菇凉很好 | 园豆:3 (初学一级) | 2014-12-03 16:35

@菇凉很好: 这么说吧,列数是你Excel里最多的一行的。(dt.Columns.Count读取之后这一段就是获得最后的列。

1    2     第一列

1    2    3    4 

1    2

如果你excel是这样的,那么最后读取的时候会有4列。3行。

大楚打码人 | 园豆:4313 (老鸟四级) | 2014-12-03 17:02

@神叨大侠: 恩恩,那怎样获得第一行有3列,第二行有4列,第三行有2列勒,怎么获得每一行的列?

菇凉很好 | 园豆:3 (初学一级) | 2014-12-03 17:05

@菇凉很好: 列都是一样的啊,我知道了,最后的列就是,我QQ上发你吧= -!

大楚打码人 | 园豆:4313 (老鸟四级) | 2014-12-03 17:07
其他回答(2)
0

NPOI,EPPlus 读取Excel文件,并获取数据,和mvc没直接关系。

收获园豆:5
幻天芒 | 园豆:37175 (高人七级) | 2014-12-03 09:11

我没有用NPOI啊

支持(0) 反对(0) 菇凉很好 | 园豆:3 (初学一级) | 2014-12-03 09:11

@菇凉很好: 你是用的Office组件?那拿到sheet之后,有获取数据数量的属性啊~

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2014-12-03 10:13

@幻天芒: 

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();

你说的是这里吗?

支持(0) 反对(0) 菇凉很好 | 园豆:3 (初学一级) | 2014-12-03 10:14

@菇凉很好: 额...你是用的OLEDB啊,那你直接写sql语句求count了。select count(*) from [Sheet1$]

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2014-12-03 10:58

@幻天芒: 获得当前行的也是这样写吗?这个我不懂啊

支持(0) 反对(0) 菇凉很好 | 园豆:3 (初学一级) | 2014-12-03 11:20

@菇凉很好: 数据不大的话,你直接读取到DataTable吧,和数据库的操作是一样的。

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2014-12-03 11:44

@幻天芒: 不太懂你的意思,额

支持(0) 反对(0) 菇凉很好 | 园豆:3 (初学一级) | 2014-12-03 13:31

@菇凉很好: 你的代码中的myDataSet.Tables[0].Rows.Count

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2014-12-03 14:10

@幻天芒: 这总是获得第一行的,

支持(0) 反对(0) 菇凉很好 | 园豆:3 (初学一级) | 2014-12-03 16:43
0

不使用楼上那些,那就用微软自家的呗

收获园豆:5
Yu | 园豆:12980 (专家六级) | 2014-12-03 09:59

恩恩,是用的微软自带的,就是不知道怎么获得当前行的多少列啊

支持(0) 反对(0) 菇凉很好 | 园豆:3 (初学一级) | 2014-12-03 10:01

@菇凉很好: 

Worksheet shs = wb.Worksheets["Sheet1"];
int count = shs.UsedRange.Columns.Count;
支持(0) 反对(0) Yu | 园豆:12980 (专家六级) | 2014-12-03 10:30

@Yu: 这个wb是什么?

支持(0) 反对(0) 菇凉很好 | 园豆:3 (初学一级) | 2014-12-03 13:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册