高分求Excel导入数据库

fastrain 2009-10-10 09:55:18
如题,我用的是三层结构。我的想法分一下几步:
1. 选择要导入的文件,一个文件只导入第一个sheet.
2. 点击下一步或者读取数据按钮将excel的数据,在网页中显示出来。并在第一列加上checkBox,让用户选择是否导入。
3. 将所有选中的checkBox的行导入到数据库中。
最好有完整的代码,谢谢!
...全文
178 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xlj_2008 2010-06-24
  • 打赏
  • 举报
回复
ding~~~~````
lyvscf 2009-10-10
  • 打赏
  • 举报
回复
要求不要太高 伙计 这代码都出来了
还写不出来 就怪不得别人了
唯一没有写出的 是遍历你的 checkbox 这个你自己遍历一下转换成 datatable 不就完事ok了!
yanm7788 2009-10-10
  • 打赏
  • 举报
回复
网上挺多地,帮顶个吧
fastrain 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 yxzbest 的回复:]
楼上的大多数代码都有自己的其他类,也没有给出,想借鉴都不行
[/Quote]

同感,所以继续顶
yxzbest 2009-10-10
  • 打赏
  • 举报
回复
楼上的大多数代码都有自己的其他类,也没有给出,想借鉴都不行
terry100000 2009-10-10
  • 打赏
  • 举报
回复
bcp是每个数据库应用都有的工具么?
fastrain 2009-10-10
  • 打赏
  • 举报
回复
大家继续啊,有没有更好的
messi_yang 2009-10-10
  • 打赏
  • 举报
回复
來學習了···頂哈·
我最近也在做類似的·
Hertz_liu 2009-10-10
  • 打赏
  • 举报
回复
楼上的回答思路都是这样,但是个人觉得有些小地方需要注意

比如读取Excel第一张表的记录,楼上有些是用“select * from [Sheet1$]”,但是个人觉得不妥

楼主虽然说每个Excel是读取第一张表的记录,但是并没有说第一张表的名称一定是Sheet1,如果我把Sheet1重新命名过后,上面的那条SQL就出错了

所以在这一块,应该先取出第一张Sheet表的名称,然后再使用上面的Select语句
wx23990915 2009-10-10
  • 打赏
  • 举报
回复
public DataSet GetDataFrowExcel(HtmlInputFile fileUp) 
{

string filetype = fileUp.Value.ToString().Substring(m);
if (filetype != ".xls" && filetype != ".XLS")
{
Label1.Text = "导入文件格式不正确!";
return;
}
string filestr = Server.MapPath("~/temp/" + Guid.NewGuid().ToString() + ".xls");
System.IO.FileInfo fileInfo = new FileInfo(filestr);
if (fileInfo != null)
{
fileInfo.Delete();
}

fileUp.PostedFile.SaveAs(filestr);
DataSet dataSet = new DataSet();
string connExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileInfo.FullName + ";Extended Properties=Excel 8.0";

OleDbConnection oleDbConn = new OleDbConnection(connExcel);
oleDbConn.Open();

//获取excel表

DataTable dataTable = oleDbConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

//获取sheet名,其中[0][1]...[N]: 按名称排列的表单元素
string tableName = dataTable.Rows[0][2].ToString().Trim();
tableName = "[" + tableName.Replace("'", "") + "]";

//利用SQL语句从Excel文件里获取数据

OleDbDataAdapter oleAdapter = new OleDbDataAdapter("select StudentNO ,KGTScore,CourseName from " + tableName, connExcel);
oleAdapter.Fill(dataSet);
oleDbConn.Close();
oleDbConn.Dispose();
oleAdapter.Dispose();
return dataSet;
}
lyvscf 2009-10-10
  • 打赏
  • 举报
回复

// 读取Excel
private DataTable GetExcelTable(string uploadPath)
{
DataSet ds = new DataSet();
string Xls_ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + uploadPath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1';";//HDR为yes 则第一数据行为列名,为no 则自动为列加列名F1 F2 F3
OleDbConnection Conn = new OleDbConnection(Xls_ConnStr);
try
{
Conn.Open();
string sql_str = "select * from [Sheet1$]";
OleDbDataAdapter da = new OleDbDataAdapter(sql_str, Conn);
da.Fill(ds, "excel_data");
Conn.Close();
}
catch
{
if (Conn.State == ConnectionState.Open)
{
Conn.Close();
}
return null;
}
finally
{
Conn.Dispose();
}

if (ds == null)
{
return null;
}

if (ds.Tables.Count < 1)
{
return null;
}

return ds.Tables[0];
}
ws_hgo 2009-10-10
  • 打赏
  • 举报
回复
用bcp
lyvscf 2009-10-10
  • 打赏
  • 举报
回复

protected void Batch_ServerClick(object sender, EventArgs e)
{
//获取完整路径
string thefullname = this.uploadFile.PostedFile.FileName;

if (thefullname == "")
{
this.Label3.Text = "请选择要上传得Excel文件!";
return;
}

int fileLength = this.uploadFile.PostedFile.ContentLength;
if (fileLength > 512000)
{
this.Label3.Text = "文件已超过500K,无法上传!";
return;
}
FileInfo info = new FileInfo(thefullname);

string fileExt = info.Extension;
if (fileExt.ToLower() != ".xls")
{
this.Label3.Text = "不是Excel文件,请使用正确的文件格式!";
return;
}

string uploadPath = Page.MapPath(@"uploadfile\report.xls");
bool upSuccess = Upload(uploadPath);
if (!upSuccess)
{
this.Label3.Text = "文件上传失败!";
return;
}
DataTable table = GetExcelTable(uploadPath);
if (table == null)
{
this.Label3.Text = "文件读取失败!";
return;
}
else
{
// 执行导入
PanIntegralSetManager pm = new PanIntegralSetManager();
DefPanIntegralSet model = new DefPanIntegralSet();
PTM.BLL.ProductSpec ps = new PTM.BLL.ProductSpec();
IList<DefProductSpec> list = new List<DefProductSpec>();
list = ps.QueryProSpecByCidx(HttpContext.Current.Session[PTM.Common.Constant.SS_CID].ToString());
model.CID = list[0].Cid;
DataTable dt = GetExcelTable(uploadPath);

#region 转换为二维数组
int colsCount = dt.Rows.Count;
string[] psid_array = new string[colsCount];
int[] integral_arry = new int[colsCount];
string[] stime_array = new string[colsCount];
string[] etime_array = new string[colsCount];
int[] price_arry = new int[colsCount];
int i = 0;
foreach (DataRow row in dt.Rows)
{
if (string.IsNullOrEmpty(row[0].ToString()))
{
this.Label3.Text = "导入失败!产品编号不能为空";
return;
}
if (!string.IsNullOrEmpty(row[2].ToString()))
{
Match m = Regex.Match(row[2].ToString(), @"^[1-9]\d*$");
if (!m.Success)
{
this.Label3.Text = "查询分值的格式输入有误";
return;
}
}
else
{
this.Label3.Text = "您导入的Excel文件有为空的项,请检查!";
return;
}
if (!string.IsNullOrEmpty(row[3].ToString()) && !string.IsNullOrEmpty(row[4].ToString()))
{
Match m = Regex.Match(row[3].ToString(), @"^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})");
Match n = Regex.Match(row[4].ToString(), @"^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})");
if (!m.Success || !n.Success)
{
this.Label3.Text = "开始时间结束时间格式不正确!";
return;
}
}
else
{
this.Label3.Text = " 开始时间结束时间不能为空!";
return;
}

psid_array[i] = row[0].ToString();//第一列
integral_arry[i] = Convert.ToInt32(row[2].ToString());//第三列
stime_array[i] = row[3].ToString();//第四列
etime_array[i] = row[4].ToString();//第四列
price_arry[i] = Convert.ToInt32(row[5].ToString());//第五列

// 在产品编号的前面补零
switch (psid_array[i].Length)
{
case 1:
psid_array[i] = "000" + psid_array[i];
break;
case 2:
psid_array[i] = "00" + psid_array[i];
break;
case 3:
psid_array[i] = "0" + psid_array[i];
break;
}

i++;
}
#endregion
try
{
// 产品批量入库
int[] j = pm.AddProductVolumes(psid_array, integral_arry, stime_array, etime_array, model, price_arry);

for (int m = 0; m < j.Length; m++)
{
int n = m + 1;
switch (j[m])
{
case -1:
this.Label3.Text += "第" + n + "条添加失败,是系统中没有的产品</br>";
break;
case 0:
this.Label3.Text += "第" + n + "条添加失败,请检查您的格式是否正确</br>";
break;
case 1:
this.Label3.Text += "第" + n + "条为已添加产品,系统自动执行了修改操作</br>";
break;
case 2:
this.Label3.Text += "第" + n + "条插入成功</br>";
break;
}
}
}
catch (Exception ex)
{

}
}
}

// 保存Excel
private bool Upload(string uploadPath)
{
try
{
this.uploadFile.PostedFile.SaveAs(uploadPath); //上传Excel并保存,在这里判断是否保存成功
return true;
}
catch
{
return false;
}
}

给你吧
ws_hgo 2009-10-10
  • 打赏
  • 举报
回复
 //先将Excel传到服务器上面
protected void Button1_Click(object sender, EventArgs e)
{
string Excel = string.Empty;
Boolean fileOK = false;
String path = Server.MapPath("~/UploadExcel/");
if (FileUpload1.HasFile)
{
String fileExtension =
System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
String[] allowedExtensions =
{ ".xls" };
for (int i = 0; i < allowedExtensions.Length; i++)
{
if (fileExtension == allowedExtensions[i])
{
fileOK = true;
}
}
}

if (fileOK)
{
try
{
//FileUpload1.PostedFile.SaveAs(path
// + FileUpload1.FileName);
//Excel = FileUpload1.PostedFile.FileName;
Excel=path + FileUpload1.FileName;

Excel = path + System.IO.Path.GetFileName(FileUpload1.FileName);
//FileUpload1.PostedFile.SaveAs(Excel);


// Response.Write(Excel);
DataTableToDB(Excel);
//Label1.Text = "File uploaded!";
}
catch (Exception ex)
{
Response.Write(ex.Message);
Label1.Text = "上传失败!";
}
}
else
{
Label1.Text = "文件格式不对.";
}

}
public static void DataTableToDB(string Ex)
{
ASP.admin_bjproduct_list_aspx list = new admin_bjproduct_list_aspx();
BJProductCategory CC = new BJProductCategory();

DataTable dtExcel = ExcelToDataTable(Ex, "Sheet1");
DT = CreateParentTable();
try
{
for (int i = 0; i < dtExcel.Rows.Count; i++)
{
if (dtExcel.Rows[i][0].ToString() != null || dtExcel.Rows[i][0].ToString() != "")
{

DR = DT.NewRow();
int PID = CategoryID(dtExcel.Rows[i][2].ToString());
CC.ID = PID;
WebManager.GetInfo(CC);
if (CC.Title == "")
{
continue;
}
else
{
DR["Title"] = dtExcel.Rows[i][1].ToString();
DR["ParentID"] = PID;
DR["tmp1"] = dtExcel.Rows[i][3].ToString();
DR["tmp2"] = float.Parse(dtExcel.Rows[i][4].ToString());
DR["tmp3"] = dtExcel.Rows[i][5].ToString();

}
DT.Rows.Add(DR);

}
else
{
list.AlertMsg("该行数据为空!");
}
}
DataRow[] Last = DT.Select("tmp2>0");
LastDT = Last[0].Table;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}


using (System.Data.SqlClient.SqlBulkCopy bulkCopy =
new System.Data.SqlClient.SqlBulkCopy(@"Data Source=PC-200906271415\WS_HGO;Initial Catalog=F:\我的单子\200904\项目\ZYT\APP_DATA\BJYZT.MDF;User ID=sa;Password=123456;max pool size=512;pooling=true;"))
{
bulkCopy.DestinationTableName =
"BJProduct";
bulkCopy.ColumnMappings.Add("Title", "Title");
bulkCopy.ColumnMappings.Add("ParentID", "ParentID");
bulkCopy.ColumnMappings.Add("tmp1", "tmp1");
bulkCopy.ColumnMappings.Add("tmp2", "tmp2");
bulkCopy.ColumnMappings.Add("tmp3", "tmp3");

try
{
bulkCopy.WriteToServer(LastDT);
list.AlertMsg("数据导入成功!");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
DT.Clear();
}
}
}
//将Excel中的内容插入到DataTable中
public static DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties=Excel 8.0;";
string strExcel = string.Format("select * from [{0}$]", strSheetName);
DataSet ds = new DataSet();

using (System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn))
{
conn.Open();
System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter(strExcel, strConn);
adapter.Fill(ds);
conn.Close();
conn.Dispose();
}

return ds.Tables[0];
}
//获取父类ID
public static int CategoryID(string category)
{
int CID = 1;
string s = "cn";
System.Data.SqlClient.SqlConnection Conn = new System.Data.SqlClient.SqlConnection();

Conn.ConnectionString = @"Data Source=PC-200906271415\WS_HGO;Initial Catalog=F:\我的单子\200904\项目\ZYT\APP_DATA\BJYZT.MDF;User ID=sa;Password=123456;";
Conn.Open();
string sqlcategory = "insert into BJProductCategory (Title,ParentID,Version) values('" + category + "'," + 1 + ",'" + s + "')";
System.Data.SqlClient.SqlCommand Com = new System.Data.SqlClient.SqlCommand(sqlcategory, Conn);

int i = Com.ExecuteNonQuery();
if (i > 0)
{
//取出最大值就是当前插入的ID
string str = "select max(ID) AS ID from BJProductCategory";
System.Data.SqlClient.SqlCommand Cmd = new System.Data.SqlClient.SqlCommand(str, Conn);
CID = Convert.ToInt32(Cmd.ExecuteScalar());
}
Conn.Close();
Conn.Dispose();
return CID;


}
//Title,ParentID,tmp1,tmp2,tmp3,Version
public static DataTable CreateParentTable()
{
ParentTable.Columns.Clear();
DC = new DataColumn();
DC.ColumnName = "Title";
DC.DataType = System.Type.GetType("System.String");
ParentTable.Columns.Add(DC);
DC = new DataColumn();
DC.ColumnName = "ParentID";
DC.DataType = System.Type.GetType("System.Int32");
ParentTable.Columns.Add(DC);
DC = new DataColumn();
DC.ColumnName = "tmp1";
DC.DataType = System.Type.GetType("System.String");
ParentTable.Columns.Add(DC);
DC = new DataColumn();
DC.ColumnName = "tmp2";
DC.DataType = System.Type.GetType("System.String");
ParentTable.Columns.Add(DC);
DC = new DataColumn();
DC.ColumnName = "tmp3";
DC.DataType = System.Type.GetType("System.String");
ParentTable.Columns.Add(DC);
DC = new DataColumn();
DC.ColumnName = "Version";
DC.DataType = System.Type.GetType("System.String");
ParentTable.Columns.Add(DC);
return ParentTable;
}
yxzbest 2009-10-10
  • 打赏
  • 举报
回复
关注,顶
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于Servlet+JSP+JavaBean的新生管理系统源码+数据库+部署说明(javaweb高分课设).zip # JavaWeb项目之新生管理系统(Servlet+JSP+JavaBean) ## 项目介绍 ### 功能介绍 -登录,登出和登录验证 -新生报到:     新生录取信息管理:条件搜索新生,搜索结果以列表的形式给出,可以对列表中的客户信息进行编辑和删除,导入新生信息     班级分配:修改新生班级     专业调整:修改新生系别和专业     财务缴费:条件搜索新生缴费情况,搜过结果以列表的形式给出 -宿舍管理:条件搜索宿舍,搜索结果以列表的形式给出,管理宿舍人员(查看人员,增加人员,删除人员) -班级管理:条件搜索班级,搜索结果以列表的形式给出,管理班级人员(查看人员,增加人员,删除人员) -成绩管理:条件搜索成绩,搜索结果以列表的形式给出 -用户管理:管理员修改密码 ### 运用知识 -数据库基本查询 -数据库连接池c3p0 -运用dbutil.jar包一键封装表单数据到bean对象中,简化对数据库增、删、改、查的代码 -运用fileupload.jar包上传文件 -运用poi.jar包解析EXCEL文件 -AJAX异步更新 -运用json-lib.jar包将数据转化为JSON格式 -标签库JSTL -JavaWeb三层框架的分离 ## 准备 1.导入第三方包,c3p0配置文件和db.proerties数据库配置文件 2、建包 -dao,dao.impl -service,service.impl -servlet.controller,servle.filter,servle.UI -domain ## 搭建环境 IntelliJ IDEA +MySQL
星空成绩管理系统是一套专门用来满足高中、初中、小学成绩统计、分析的网站应用。 星空成绩管理系统 1.05 更新记录: 1、2011年11月19日完善教师、学生的添加功能,禁止使用重复账号或者学号; 2、2011年11月19日完善删除班级自动删除学生等信息的功能; 3、2011年11月19日完善了原始成绩导入导出的功能; 4、2011年11月20日修改了多处错误; 5、2011年11月20日修正了删除考试时没有删除考试统计的问题。 6、2011年11月21日系统更名为:星空学业评价系统。 功能特色: 一、长期记录学生成绩,生成曲线图表; 二、添加考试简便,可直接以Excel成绩表生成考试; 三、生成的统计分析详细全面。 成绩管理: 1、通过Excel导入导出学生成绩、通过考号录入学生成绩。 2、统计学生成绩、将统计结果导出网页和Excel 统计项目主要有: a、分班统计学生总分、平均分、班排名和级排名; b、分学科统计班和全级的总分、平均分、各分数段(50分以下、50-60分、60-70分、70-80分、80-90分、90-100分)、低分人数、合格人数、优秀人数、高分人数、低分率、合格率、优秀率、高分率、四率和、四率一分; c、统计各班和全级的平均分、各分数段(450分以下、450分以下、540-630、630-720、810-900)、低分人数、合格人数、优秀人数、高分人数、低分率、合格率、优秀率、高分率、四率和、四率一分。 3、修改&设置: a、学科满分的修改; b、分班级添加或者删除考试学生; c、随机生成考试学生的考号、从Excel文件中导入考号、导出考生信息。 添加考试: 添加方式一:以系统学籍和系统学科数据为基础进行添加。 添加方式二:直接导入已经考完试有成绩的数据表,导入的数据如果和系统的学籍或者学科相同,程序将自动关联,例如学生的学号和系统的一至,成绩将自动记录到该学生名下。导入的数据也可以系统中没有的学生、班级或者学科,但这样学生查不了成绩,可以用于临时对某个考试成绩进行统计,获取统计表,比如用于外校的成绩统计。 学生管理: 班主任或者管理员对班级、学生的管理:添加、导入、删除、调班、修改密码、修改在校离校情况、查看历史成绩等操作。 学科教师: 学科和学科教师管理:添加、修改、删除学科;修改学生的教师。 教师管理: 对教师进行添加、导入、修改、删除、设置权限、所教科目等操作。 权限管理: 添加、修改、删除教师用户组权限。 登录: 教师、学生都是同一地方登录,学生以学号和密码登录,登录后可以查询历史成绩。 安装方法: 1、附加SQL2005数据库:RP2011t.mdf 。如果是旧版本升级可以不用修改数据库,只人运行一次updata.aspx就可以了,运行后可以删除这个文件。 2、修改Web.config里面的数据库用户和密码 3、文件放置到虚拟目录中进行访问 管理员登录账号:admin 密码:admin 4、Excel导出功能服务器需要如下设置: Asp.Net中Excel操作权限的问题 由于Excel的DCom组件权限不足所引起的,所以按照原来的步骤进行设置,如下所示: 1:在服务器上安装office的Excel软件; 2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"; 3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"; 4:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框; 5:点击"标识"标签,选择"交互式用户"; 6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限。在XP系统和2000系统中添加ASPNET用户; 7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限. 注意:其中第5步是必须的,否则会出现以下错误: 内存或磁盘空间不足,Microsoft Office Excel 无法再次打开或保存任何文档。 ? 要想获得更多的可用内存,请关闭不再使用的工作簿或程序。 ? 要想释放磁盘空间,请删除相应磁盘上不需要的文件。
星空成绩管理系统(成绩统计系统、星空学业评价系统、成绩管理系统、学籍管理系统)ASP.NET网络版是一套专门用来满足高中、初中、小学成绩统计、分析的网站应用。测试地址:http://lmy.sdedu.net/rp2011t/ 登录账号:test 登录密码:test星空成绩管理系统 v1.05更新记录:1、2011年11月19日完善教师、学生的添加功能,禁止使用重复账号或者学号;2、2011年11月19日完善删除班级自动删除学生等信息的功能;3、2011年11月19日完善了原始成绩导入导出的功能;4、2011年11月20日修改了多处错误;5、2011年11月20日修正了删除考试时没有删除考试统计的问题。6、2011年11月21日系统更名为:星空学业评价系统。星空成绩管理系统功能特色:一、长期记录学生成绩,生成曲线图表; 二、添加考试简便,可直接以Excel成绩表生成考试; 三、生成的统计分析详细全面。成绩管理:1、通过Excel导入导出学生成绩、通过考号录入学生成绩。2、统计学生成绩、将统计结果导出网页和Excel 统计项目主要有: a、分班统计学生总分、平均分、班排名和级排名; b、分学科统计班和全级的总分、平均分、各分数段(50分以下、50-60分、60-70分、70-80分、80-90分、90-100分)、低分人数、合格人数、优秀人数、高分人数、低分率、合格率、优秀率、高分率、四率和、四率一分; c、统计各班和全级的平均分、各分数段(450分以下、450分以下、540-630、630-720、810-900)、低分人数、合格人数、优秀人数、高分人数、低分率、合格率、优秀率、高分率、四率和、四率一分。3、修改&设置: a、学科满分的修改; b、分班级添加或者删除考试学生; c、随机生成考试学生的考号、从Excel文件中导入考号、导出考生信息。 添加考试:添加方式一:以系统学籍和系统学科数据为基础进行添加。添加方式二:直接导入已经考完试有成绩的数据表,导入的数据如果和系统的学籍或者学科相同,程序将自动关联,例如学生的学号和系统的一至,成绩将自动记录到该学生名下。导入的数据也可以系统中没有的学生、班级或者学科,但这样学生查不了成绩,可以用于临时对某个考试成绩进行统计,获取统计表,比如用于外校的成绩统计。学生管理:班主任或者管理员对班级、学生的管理:添加、导入、删除、调班、修改密码、修改在校离校情况、查看历史成绩等操作。学科教师:学科和学科教师管理:添加、修改、删除学科;修改学生的教师。教师管理:对教师进行添加、导入、修改、删除、设置权限、所教科目等操作。权限管理:添加、修改、删除教师用户组权限。登录:教师、学生都是同一页面登录,学生以学号和密码登录,登录后可以查询历史成绩。安装方法: 1、附加SQL2005数据库:RP2011t.mdf 。 2、修改Web.config里面的数据库用户和密码 3、文件放置到虚拟目录中进行访问,如果所在分区是NTFS格式,请设置具有读写的权限; 4、如果是旧版本升级可以不用修改数据库,只要运行一次updata.aspx就可以了,运行后可以删除这个文 件。 5、管理员登录账号:admin 密码:admin 6、登录后添加班级、学生、科目、教师...... 7、Excel导出功能服务器需要如下设置: Asp.Net中Excel操作权限的问题 由于Excel的DCom组件权限不足所引起的,所以按照原来的步骤进行设置,如下所示:1:在服务器上安装office的Excel软件; 2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"; 3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"; 4:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹 出"Microsoft Excel 应用程序属性"对话框; 5:点击"标识"标签,选择"交互式用户"; 6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的" 安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本 地激活"权限。在XP系统和2000系统中添加ASPNET用户; 7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框 中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限.注意:其中第5步是必须的,否则会出现以下错误:内存或磁盘空间不足,Microsoft Office Excel 无法再次打开或保存任何文档。
Amazon的Merch的Productor是一个工具包,可让您对Amazon的Merch进行产品管理和类固醇研究。 Amazon的Merch的Productor是一个工具包,可让您对Amazon的Merch进行产品管理和类固醇研究 Easy Excel或Numbers Sheet(.xlsx)导入和导出,复制和粘贴,翻译,重新列出,自动填充等!快速在Amazon Dashboard的Merch中直接概览每个产品的Amazon畅销产品排名(BSR)!在每个亚马逊平台(美国,美国,...)上查看竞争对手的BSR。将您的设计的最佳卖方排名(BSR)与您的竞争对手在亚马逊上进行比较。特点:★数据存储在您的浏览器本地,无需外部数据库或服务! ★快速简便的Excel(.xslx)批量导入(含)。价格和颜色★更大更好的输入字段★自动检查被禁用的关键字(内容政策)-列表的安全性! ★在“管理产品”和所有亚马逊平台的所有列表(德国,美国,英国,...)上显示亚马逊畅销书排名(BSR)★显示您的产品和竞争对手产品的估计销售额! ★扩展的“管理产品”表以显示“品牌”,“ BSR”,“评论”-计数器和更快的“编辑”按钮访问权限★显示“ ASIN”以在Amazon Marketing Services,Amazon Advertising(AMS,AA)上创建活动更快★在“管理产品”和亚马逊搜索结果下显示估计的销售额以及更多信息★轻松便捷地检测到版权侵权!最好将您的MBA产品与在亚马逊上被盗的产品区分开 ★右键单击任何列表以下载高分辨率图像★复制并粘贴。颜色!复制一个清单的内容(自己的清单或其他清单)并将其粘贴到另一个清单中 ★一键翻译所有表单字段! ★重点针对每个Amazon产品提取和分析关键字★永远不要再松散使用Merch过期的Amazon产品的踪迹。每天都会弹出的列表,显示60、30和10天的过期时间,包括详细信息和导出功能! ★改进的统计和分析功能★MBA新销售的即时通知★只需右键单击详细信息页面,即可下载任何Merch By Amazon产品的高分辨率图像! ★将编辑和复制到剪贴板功能直接集成到亚马逊的搜索结果中★完全导出包括设计在内的所有产品! ★通过Amazon备份您的Merch★包括对您的清单的商标检查★改进了产品的分类和过滤★一键式重新列出即将到期的产品! (只需单击一下,即可通过亚马逊重新发布即将到期的商品。)★一键交叉列出从美国到英国或德国的现有产品★对表格进行任何类型的信息排序★应用默认的颜色,合适的类型,产品和更多用于“多种产品”的商品★通过BSR(畅销书排名)和Rocket Sellers在亚马逊上对搜索结果进行排序★自动将图像大小从T恤转换为Hoodie和Popsocket★所有产品的BSR历史记录★创建Amazon Advertising Auto -Campaign Bulk Import导出文件,以将您过滤后的产品导入到Amazon Advertising。还有更多...简化您的工作流程! ★亚马逊用于Merch的多合一工具包★您的信任对我们很重要!生产者不会在本地浏览器/机器之外存储任何类型的信息,也不会跟踪您或您的研究!免责声明:这不是由Merch by Amazon或Amazon提供的官方插件。平台可能发生意外更改,这可能导致插件失败。 支持语言:English
一、数据分析项目介绍 1. 项目所需的模块库介绍 pandas用法: 需要导入以下模块 import numpy as np import pandas as pd from pandas import Series, Dataframe 2.项目背景介绍 互联网电影资料库(Internet Movie Database,简称IMDB)是一个关于电影演员、电影、电视节目、电视明星和电影制作的在线数据库。电影作为艺术和娱乐载体已成为我们生活中的一部分,作为电影爱好者之一,希望通过分析了解电影市场大体情况,以便于以后选择电影观看。 使用的数据是IMDB美国票房排名前1000的电影数据,数据包含了电影名称,票房金额,上映年份,演职人员,IMDB评分,电影类型等信息,数据中的很多电影大家也比较熟悉。相信不少人都有这样的经历,当想要看一部电影的时候,会去百度一下谁是导演,谁是主演。如果导演是克里斯托弗•诺兰,心里已经给电影打了个8分以上的评分了。而阿汤哥的动作片,预期也都能肾上腺素飙升。对于已上映的电影,不少人会去豆瓣搜索现时的评分,或是前作的评价,若是豆瓣高分、高评论数,也会按奈不住去蹭下热度。如果要去电影院观看的话,想必不少人会更倾向选择动作片或者科幻大片这类特效丰富,影音冲击强烈的电影。近几年特效技术和3D动画的日渐成熟,影院观影已经是越来越多人的第一选择。 IMDB的资料中包括了影片的众多信息、演员、片长、内容介绍、分级、评论等。对于电影的评分目前使用最多的就是IMDB评分。 截至2018年6月21日,IMDB共收录了4,734,693部作品资料以及8,702,001名人物资料。 3.项目所需数据介绍 数据的属性包括:电影名称、评论数、评分、导演、上映时间、上映国家、主要演员、语言、IMDB评分等。 理解数据: color 、director_name 、num_critic_for_reviews、duration、director_facebook_likes 、actor_3_facebook_likes、actor_2_name 、actor_1_facebook_likes 、gross 、genres 、actor_1_name 、movie_title 、num_voted_users、cast_total_facebook_likes 、actor_3_name 、facenumber_in_poster 、plot_keywords 、movie_imdb_link 、num_user_for_reviews、language 、country、content_rating、budget、title_year 、actor_2_facebook_likes 、imdb_score 、aspect_ratio 、movie_facebook_likes 4.项目功能详细介绍 显示电影评分分布的情况; 电影数量与平均分年度变化的情况; 评论家评论数与评分的关系; 评分与电影票房的关系; 电影数量大于5前提下平均分前十的导演推荐的数据; 不同电影类型的年份累计分析; 电影时长的分布及时长是否和评分有相关性; 电影时长的分布及时长是否和评分有相关性。 二、数据分析过程 1.主要功能实现的类和方法介绍 # 清洗runtime电影时长列数据,可使用str.split()方法 df['runtime'] = df['runtime'].str.split('').str.get(0).astype(int) df['runtime'].head() # 清洗year列,使用str[:]选取年份数字并转换成int类型,使用df.unique()方法检查数据 df['year'] = df['year'].str[-5:-1].astype(int) df['year'].unique() 2. 数据分析过程代码和解释说明 导入包: 导入、查看、清洗数据: 评分分布图: 电影数量与平均分布年度变化: 评论家评论数&评分、评分&票房: 电影数量大于5平均分前十的导演: 统计不同年份、不同类型电影的数量: cumsum = df.groupby(['main_genre', 'year']).title.count() # 使用累加功能统计1980年起不同年份不同电影类型的累计数量,对于中间出现的缺失值,使用前值填充 genre_cumsum = cumsum.unstack(level=0).cumsum().ffill() # 只选取总数量大于50的电影类型数据 genre_cumsum = genre_cumsum.loc[:,genre_cumsum.iloc[-1,:] >= 50] # 根据电影类型统计数据作图 fig, ax2 = plt.subplots(figsize=(12,6)) genre_cumsum.plot(ax=ax12, legend=False, linewidth=3) # 添加数据标签 for i in last_row.iteritems(): if i[0] == 'Adventure' or i[0] == 'Biography' or i[0] == 'Horror': ax2.annotate('{} {}'.format(int(i[1]), i[0]), xy=(2018.5, i[1]-5), fontsize=12) else: ax2.annotate('{} {}'.format(int(i[1]), i[0]), xy=(2018.5, i[1]+5), fontsize=12) # 美化图表 ax2.set_title('The Aggregate Movies of Different Genres Over Years', fontsize=16) ax2.spines['top'].set_visible(False) ax2.spines['right'].set_visible(False) ax2.spines['left'].set_visible(False) ax2.tick_params(bottom=True, labelleft=False) ax2.set_xlabel('') plt.tight_layout() 电影时长的分布及时长是否和评分有相关性: fig, ax4 = plt.subplots() df['runtime_min'].hist(range=(70,210), bins=14, color=(114/255,158/255,206/255)) ax4.set_title('The Runtime Distribution of US Top Box Office Movies') ax4.spines['top'].set_visible(False) ax4.spines['left'].set_visible(False) ax4.spines['right'].set_visible(False) ax4.set_xticklabels(np.arange(70,220,10)) ax4.set_xticks(np.arange(70,220,10)) ax4.grid() 绘制时长和IMDB评分相关性: fig = plt.figure(figsize=(14,7)) sns.lmplot(data=df, x='runtime_min', y='imdb_rate') sns.despine() 三、数据分析结果评估 1、评分分布主要在5.0~8.0之间,3.0以下和9.0以上分布很少。如果8.0算为优秀,则优秀电影占比较少。 2、电影数量在1990~2000年间快速增长,2009年达到较高值。而电影的平均分整体上呈下降趋势。 3、评论家评论数与评分整体呈正相关关系,500以上评论家评论数对应的评分都高于6.0。 4、评分与票房整体呈正相关关系,但关系不强。 IMDB评分人数和电影票房的相关性很弱,高票房不代表评分人数多,低票房电影也能有大量的IMDB评分人数。 5、电影数量大于5平均分前十的导演:Christopher Nolan、Quentin Tarantino 、 Stanley Kubrick、 James Cameron 、Peter Jackson 、Alejandro G. Iñárritu 、David Fincher 、Martin Scorsese 、 Wes Anderson 、Paul Greengrass。 6. 前五大电影类型分别是动作片Action,喜剧片Comedy,动画片Animation,剧情片Drama,冒险片Adventure。1995年之前,动作片和喜剧片都是影院观众最喜爱的电影类型,对应的高票房数量不分伯仲,剧情片是另一相对流行的电影类型。1995年后,高票房的动作片快速增长,甩开了喜剧片。喜剧片随仍是高票房数量第二多的电影类型,但近几年增速明显放缓。高票房动画片进入榜单的时间最晚,但在1998年前后迎来明显增长,此后的十年里完成了对剧情片和冒险片的超越。如果动画片保持目前的增速,有望在之后的十几二十年里超越喜剧片,成为高票房数量第二的电影类型。 7. 时长和IMDB评分呈一定的相关性,时长短的电影既有高分也有低分,但时长超过160分钟的电影基本都能获得6分以上的分数,时长最长的两部电影甚至得到了接近9分的超高得分,IMDB评分接近或低于4分的电影时长均小于130分钟。丰富的剧情和长长的故事也许也是一种容易感染观众的方式,这也和之前提到的好的故事打动观众相呼应。 四、总结 数据分析的过程往往是一个从宏观到微观的过程。先从宏观上把握数据大体的情况,大胆地提出假设,然后再将数据进行细分,小心地证。通过数据的对比,就很容易看出调整的效果。 有关活动效果的数据分析往往也会涉及数据的对比。具体的思路是从要分析的目的入手,首先思考造成这种情况的可能原因有什么,再从每个可能的原因中找到相应的数据,与要分析的目的的数据进行比较,看哪一个是造成该情况发生的主要原因。 这里要用到的是excel的图表工具,把每一种可能的数据都作出一个图表,与要分析的目的的数据图表进行比较,如果有某一个数据的变化曲线与之相差不多,则可以说这个所对应的原因是造成该情况发生的主要原因。 以上是分析活动的一些核心数据,核心数据的分析是最主要的,因为这直接反应了该活动最本质的效果。

62,051

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧