我尝试了你的代码,但它无法正常工作 [英] i tried your code but it is not working

查看:71
本文介绍了我尝试了你的代码,但它无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

周一

会话



日期课程会议1会议2



Sub学院子学院



18-Aug BTech1 A RJ B RK

BTech2 B SK C SV + MJ



19-Aug BTech4 i MJ j GS

BTech5 k RP l CB + RJ



我要出口Gridview中的上述excel记录如下。



该代码如下



protected void btnimport_Click(对象发件人,EventArgs e)

{

import();

}



private void import()

{

string path = @C:\ FACULTYT.xlsx

GvSch.DataSource = ImportExcelXLS( path,false);

GvSch.DataBind();

GvSch.Visible = true;

}



public static DataSet ImportExcelXLS(string FileName,bool hasHeaders)

{

string HDR = hasHeaders? 是:否;

string strConn;

if(FileName.Substring(FileName.LastIndexOf('。'))。ToLower()==。 xlsx)

strConn =Provider = Microsoft.ACE.OLEDB.12.0; Data Source =+ FileName +; Extended Properties = \Excel 12.0; HDR =+ HDR +; IMEX = 0 \;

else

strConn =Provider = Microsoft.Jet.OLEDB.4.0; Data Source =+ FileName +;扩展属性= \Excel 8.0; HDR =+ HDR +; IMEX = 0 \;



DataSet输出=新DataSet();



使用(OleDbConnection conn = new OleDbConnection(strConn))

{

conn.Open();



DataTable schemaTable = conn.GetOleDbSchemaTable(

OleDbSchemaGuid.Tables,new object [] {null,null,null,TABLE});



foreach(schemaTable.Rows中的DataRow schemaRow)

{

string sheet = schemaRow [TABLE_NAME]。 ToString();



if(!sheet.EndsWith(_))

{

尝试

{

OleDbCommand cmd = new OleDbCommand(SELECT * FROM [+ sheet +],conn);

cmd.CommandType = CommandType.Text;



DataTable outputTable = new DataTable(sheet);

output.Tables.Add(outputTable) ;

新OleDbDataAdapter(cmd).Fill(outputTable);



DataTable table = new DataTable();

table.Columns.Add(Date,typeof(string));

table.Columns.Add(Course,typeof(string));

table.Columns.Add(Session,typeof(string));

table.Columns.Add(Subject,typeof(string));

table。 Columns.Add(Faculty,typeof(string));



int irow = 0;

foreach(outputTable中的DataRow行。行)

{

if(row [1] .ToString()!=Course&& row [1] .ToString()!=&& row [ 1] .ToString()!= null)

{

DataRow row1 = table.NewRow();







if(row [3] .ToString()。包含s(+))

{

string [] str = row [3] .ToString()。Split('+');

foreach(str中的对象obj)

{

row1 [Date] = datevalue;

row1 [Course] = row [1] .ToString();

row1 [Session] =1;

row1 [Subject] = row [2] .ToString ();

row1 [Faculty] = str [1];

}

}

else

{

row1 [Date] = datevalue;

row1 [Course] = row [1] .ToString();

row1 [Session] =1;

row1 [Subject] = row [2] .ToString();

row1 [Faculty] = row [3] .ToString();

}





if(row [2]。 ToString()。Trim()!=&& row [3] .ToString()。Trim()!=&& row [2] .ToString()。Trim()!= null && row [3]。 ToString()。Trim()!= null)

table.Rows.Add(row1);

row1 = table.NewRow();



if(row [5] .ToString()。包含(+))

{

string [] str = row [3] .ToString()。Split('+');

foreach(str中的对象obj)

{

row1 [Date] = datevalue;

row1 [Course] = row [1] .ToString();

row1 [Session] =2;

row1 [Subject] = row [4] .ToString();

row1 [Faculty] = str [1];

}

}

else

{

row1 [Date] = datevalue;

row1 [Course] = row [1] .ToString();

row1 [Session] =2 ;

row1 [Subject] = row [2] .ToString();

row1 [Faculty] = row [5] .ToStrin g();

}



if(row [4] .ToString()。Trim()!=&& row [ 5] .ToString()。Trim()!=&& row [4] .ToString()。Trim()!= null && row [5] .ToString()。Trim()!= null)

table.Rows.Add(row1);

table.Rows.Add(row1);

}

irow ++;

}

output.Tables.Clear();

output.Tables.Add(table);

}

catch(exception ex)

{

抛出新的异常(ex.Message + string.Format(Sheet:{0}。文件:F {1},sheet,FileName),ex);

}

终于

{



}

}

}

}

返回输出;

}



当我将上述excel记录输出到Gridview输出时如下



日期课程课程科目学院



18-Aug-14BTech1 1 A RJ

BTech1 2 B RK

BTech2 1 B SK

BTech2 2 C SV + MJ

BTech4 1 I MJ

BTech4 2 J GS

BTech5 1 K RP

BTech5 2升CB + RJ





但是在Gridview中我希望输出如下,如果教师专栏有多个教师,我想在gridview中单独显示。




gridview中的
如果教师专栏有更多的教师,我想要输出如下。



日期课程课程科目学院

18-Aug-14 BTech1 1 A RJ

BTech1 2 B RK

BTech2 1 B SK

BTech2 2 C SV

BTech2 2 C MJ

BTech4 1 I MJ

BTech4 2 J GS

BTech5 1 K RP

BTech5 2 L CB

BTech5 2 L RJ



来自我上面的代码是什么错我做了。



请帮帮我。

问候,

Narasiman P.

Monday
Sessions

Date course session1 session2

Sub Faculty Sub Faculty

18-Aug BTech1 A RJ B RK
BTech2 B SK C SV+MJ

19-Aug BTech4 i MJ j GS
BTech5 k RP l CB+RJ

I am exporting the above excel records in Gridview as follows.

for that code as follows

protected void btnimport_Click(object sender, EventArgs e)
{
import();
}

private void import()
{
string path = @"C:\FACULTYT.xlsx
GvSch.DataSource = ImportExcelXLS(path, false);
GvSch.DataBind();
GvSch.Visible = true;
}

public static DataSet ImportExcelXLS(string FileName, bool hasHeaders)
{
string HDR = hasHeaders ? "Yes" : "No";
string strConn;
if (FileName.Substring(FileName.LastIndexOf('.')).ToLower() == ".xlsx")
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + ";Extended Properties=\"Excel 12.0;HDR=" + HDR + ";IMEX=0\"";
else
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties=\"Excel 8.0;HDR=" + HDR + ";IMEX=0\"";

DataSet output = new DataSet();

using (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();

DataTable schemaTable = conn.GetOleDbSchemaTable(
OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });

foreach (DataRow schemaRow in schemaTable.Rows)
{
string sheet = schemaRow["TABLE_NAME"].ToString();

if (!sheet.EndsWith("_"))
{
try
{
OleDbCommand cmd = new OleDbCommand("SELECT * FROM [" + sheet + "]", conn);
cmd.CommandType = CommandType.Text;

DataTable outputTable = new DataTable(sheet);
output.Tables.Add(outputTable);
new OleDbDataAdapter(cmd).Fill(outputTable);

DataTable table = new DataTable();
table.Columns.Add("Date", typeof(string));
table.Columns.Add("Course", typeof(string));
table.Columns.Add("Session", typeof(string));
table.Columns.Add("Subject", typeof(string));
table.Columns.Add("Faculty", typeof(string));

int irow = 0;
foreach (DataRow row in outputTable.Rows)
{
if (row[1].ToString() != "Course" && row[1].ToString() != "" && row[1].ToString() != null)
{
DataRow row1 = table.NewRow();



if(row[3].ToString().Contains("+"))
{
string[] str = row[3].ToString().Split('+');
foreach(object obj in str)
{
row1["Date"] = datevalue;
row1["Course"] = row[1].ToString();
row1["Session"] = "1";
row1["Subject"] = row[2].ToString();
row1["Faculty"] = str[1];
}
}
else
{
row1["Date"] = datevalue;
row1["Course"] = row[1].ToString();
row1["Session"] = "1";
row1["Subject"] = row[2].ToString();
row1["Faculty"] = row[3].ToString();
}


if (row[2].ToString().Trim() != "" && row[3].ToString().Trim() != "" && row[2].ToString().Trim() != null && row[3].ToString().Trim() != null)
table.Rows.Add(row1);
row1 = table.NewRow();

if (row[5].ToString().Contains("+"))
{
string[] str = row[3].ToString().Split('+');
foreach (object obj in str)
{
row1["Date"] = datevalue;
row1["Course"] = row[1].ToString();
row1["Session"] = "2";
row1["Subject"] = row[4].ToString();
row1["Faculty"] = str[1];
}
}
else
{
row1["Date"] = datevalue;
row1["Course"] = row[1].ToString();
row1["Session"] = "2";
row1["Subject"] = row[2].ToString();
row1["Faculty"] = row[5].ToString();
}

if (row[4].ToString().Trim() != "" && row[5].ToString().Trim() != "" && row[4].ToString().Trim() != null && row[5].ToString().Trim() != null)
table.Rows.Add(row1);
table.Rows.Add(row1);
}
irow++;
}
output.Tables.Clear();
output.Tables.Add(table);
}
catch (Exception ex)
{
throw new Exception(ex.Message + string.Format("Sheet:{0}.File:F{1}", sheet, FileName), ex);
}
finally
{

}
}
}
}
return output;
}

When i export the above excel record in to Gridview output as follows

Date Course Session Subject Faculty

18-Aug-14BTech1 1 A RJ
BTech1 2 B RK
BTech2 1 B SK
BTech2 2 C SV+MJ
BTech4 1 I MJ
BTech4 2 J GS
BTech5 1 K RP
BTech5 2 L CB+RJ


But in Gridview i want the output as follows, if faculty column have more than one faculty i want to display separtely in gridview.


in gridview i want output as follows, if faculty column have more that one faculty.

Date Course Session Subject Faculty
18-Aug-14 BTech1 1 A RJ
BTech1 2 B RK
BTech2 1 B SK
BTech2 2 C SV
BTech2 2 C MJ
BTech4 1 I MJ
BTech4 2 J GS
BTech5 1 K RP
BTech5 2 L CB
BTech5 2 L RJ

from my above code what is the mistake i made .

please help me.
Regards,
Narasiman P.

推荐答案

我们不知道该代码应该做什么:这里有10,000,000个成员,其中任何一个都可以生成该代码。所以我尝试过你的代码并且它无法正常工作除非你直接向你得到它的人发送它,否则无济于事。



回到文章或回答你得到了代码,并在那里问 - 为此目的有一个回复,或消息,或问题或评论按钮。
We have no idea what that code is supposed to do: there are 10,000,000 members here, any of which could have produced that code. So "I tried your code and it's not working" does not help unless you address it directly to the person you got it from.

Go back to the article or answer you got the code from, and ask there - there is a "reply", or Message", or "question or comment" button for that purpose.


这篇关于我尝试了你的代码,但它无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆