excel导入数据的
.aspx 文件
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" CssClass="form form-control " Style="width: 180px;" />
<div>
</div>
<asp:Button ID="Button1" CssClass="btn btn-info" runat="server" OnClick="UploadExeclFile" Text="保存" />
<button class="btn btn-default" onclick="BtnReturn()">返回</button>
</div>
</form>
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using HSRFQ.Common;
namespace HSRFQ
{
public partial class sMaterialDetailsImport : System.Web.UI.Page
{
private DBHelper db = new DBHelper();
public string sMaterialTypeGuid="";
public string sMaterialTypeCode = "";
protected void Page_Load(object sender, EventArgs e)
{
//将物料类别的guid传递过来
sMaterialTypeGuid = Request.QueryString["sMaterialTypeGuid"];
sMaterialTypeCode = Request.QueryString["sMaterialTypeCode"];
}
protected void UploadExeclFile(object sender, EventArgs e)
{
if (FileUpload1.HasFile == false)//HasFile用来检查FileUpload是否有指定文件
{
Response.Write("<script>alert('请您选择Excel文件')</script> ");
return;//当无文件时,返回
}
string IsXls = System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();//System.IO.Path.GetExtension获得文件的扩展名
if (!(IsXls == ".xls" || IsXls == ".xlsx"))
{
Response.Write("<script>alert('只可以选择Excel文件')</script>");
return;//当选择的不是Excel文件时,返回
}
//新建文件夹 ExcelTemp
if (!Directory.Exists(Server.MapPath("~/ExcelTemp/")))
{
Directory.CreateDirectory(Server.MapPath("~/ExcelTemp/"));
}
// string filename = FileUpload1.FileName; //获取Execle文件名 DateTime日期函数
//文件重命名
string FileName = System.Guid.NewGuid().ToString();
string savePath = Server.MapPath("~/ExcelTemp/" + FileName + IsXls);//Server.MapPath 获得虚拟服务器相对路径
FileUpload1.SaveAs(savePath); //SaveAs 将上传的文件内容保存在服务器上
DataSet ds = null;
try
{
ds = ExcelSqlConnection(savePath, FileName); //调用自定义方法
}
catch (Exception ex)
{
Response.Write(savePath);
Response.Write(ex.Message);
Response.End();
}
DataRow[] dr = ds.Tables[0].Select(); //定义一个DataRow数组
int rowsnum = ds.Tables[0].Rows.Count;
string sUserNo = "";
HttpCookie cookie = Request.Cookies["sUser"];
if (cookie == null)
{
Response.Write("<script>alert('系统异常,请登录重新操作!');</script>");
}
else
{
sUserNo = cookie["sUserNo"];
}
if (rowsnum == 0)
{
Response.Write("<script>alert('Excel表为空表,无数据!')</script>"); //当Excel表为空时,对用户进行提示
}
else
{
string sBatchStr = "";
for (int i = 0; i < dr.Length; i++)
{
string sMaterialType = dr[i]["物料类别"].ToString();
string smaterialNo = dr[i]["物料编号"].ToString();
if (smaterialNo == "")
{
continue;
}
string smaterialName = dr[i]["物料名称"].ToString();
string sMaterialStatus = dr[i]["物料状态"].ToString();
string sMaterialShuXing = dr[i]["物料属性"].ToString();
string sSpecification = dr[i]["物料规格"].ToString();
string sUnit = dr[i]["单位"].ToString();
string sMaterialTypeExCode = dr[i]["物料类别U9代码"].ToString();
//物料信息拼接的字符串
sBatchStr += sMaterialType.Trim()+"@@"+
smaterialNo.Trim() + "@@" +
smaterialName.Trim() + "@@" +
sMaterialStatus.Trim() + "@@" +
sMaterialShuXing.Trim() + "@@" +
sSpecification + "@@" +
sUnit.Trim() + "@@" +
sMaterialTypeExCode.Trim() + "$$";
}
string ssql = string.Format("spsMaterialDetailsExcelImport '{0}','{1}','{2}'", sBatchStr, sUserNo,sMaterialTypeGuid);
DataTable dt = null;
try
{
dt = db.ExecuteDataTable(ssql, null);
}
catch (Exception ex)
{
Response.Write(ssql);
Response.End();
}
string iStatus = dt.Rows[0]["iStatus"].ToString();
string sMessage = dt.Rows[0]["sMessage"].ToString();
if (iStatus == "1")
{
Response.Write("<script>alert('Excle表导入成功!');location.href='/MaterialInfoShow/MaterialDetail?uguid="+sMaterialTypeGuid+ "&sMaterialTypeCode="+sMaterialTypeCode+"';</script>");
}
else
{
Response.Write("<script>alert('" + sMessage + "');location.href='/MaterialInfoShow/MaterialDetail?uguid=" + sMaterialTypeGuid + "&sMaterialTypeCode=" + sMaterialTypeCode + "';</script>");
}
}
}
#region 连接Excel 读取Excel数据 并返回DataSet数据集合
/// <summary>
/// 连接Excel 读取Excel数据 并返回DataSet数据集合
/// </summary>
/// <param name="filepath">Excel服务器路径</param>
/// <param name="tableName">Excel表名称</param>
/// <returns></returns>
public System.Data.DataSet ExcelSqlConnection(string filepath, string tableName)
{
string sExt = System.IO.Path.GetExtension(filepath);
string strCon = "";
if (sExt == ".xlsx")//Excel2007
{
strCon =
"Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + filepath + ";" +
"Extended Properties='Excel 12.0;HDR=YES'";
}
else if (sExt == ".xls") //Excel2003
{
//strCon =
// "Provider=Microsoft.Jet.OLEDB.4.0;" +
// "Data Source=" + filepath + ";" +
// "Extended Properties='Excel 8.0;;HDR=YES;IMEX=1'";
strCon =
"Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + filepath + ";" +
"Extended Properties='Excel 12.0;HDR=YES'";
}
else
{
throw new Exception("未知的文件类型");
}
// strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
OleDbConnection ExcelConn = new OleDbConnection(strCon);
try
{
//从execl中获取所需要的字段信息 插入到数据库中的
string strCom = string.Format("SELECT * FROM [Sheet1$]");
ExcelConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, ExcelConn);
DataSet ds = new DataSet();
myCommand.Fill(ds, "[" + tableName + "$]");
ExcelConn.Close();
return ds;
}
catch (Exception ex)
{
Response.Write(strCon);
Response.Write("<br/>");
Response.Write(ex.Message);
Response.End();
ExcelConn.Close();
return null;
}
}
#endregion 连接Excel 读取Excel数据 并返回DataSet数据集合
}
}
excel导入数据的的更多相关文章
- Excel导入数据到Sql server 中出错:“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”
从Excel导入数据到Sql server 时,由于表中的数据有的很长,导入时出现如下错误(如果数据不是很长,255内以内,则不会出现错误): 出错原因: SQL Server的导入导出为了确定数据表 ...
- C#实现Excel模板导出和从Excel导入数据
午休时间写了一个Demo关于Excel导入导出的简单练习 1.窗体 2.引用office命名空间 添加引用-程序集-扩展-Microsoft.Office.Interop.Excel 3.封装的Exc ...
- 项目经验之:再来一章:excel导入数据 封装成最棒的不容易!!!
我见过很的系统,包括OA,ERP,CRM等,在常用的功能当中,从外部导入数据是最常用到的.因为很多客户需要以excel的形式提供数据,,这样的方式我们又如何做呢, 大家最常见的做法可能是这样的,在需要 ...
- Dynamics CRM EXCEL导入数据字段类型为选项集时的注意事项
在开始先展示下CRM的导入数据涉及选项集字段时的一个问题 下图是选项集字段的属性 下图是我要导入的excel中的列值,可以看出列明和字段名是一致的,而列值却不是选项集中已有的选项 在导入校验时,只要字 ...
- C# Excel导入数据
表 表的创建脚本 CREATE TABLE [dbo].[TB_PROJECTS_New1]( , ) NOT NULL, ) NULL, ) NULL, , ) NULL, , ) NULL, , ...
- Open XML操作Excel导入数据
项目中发现使用OleDb(using System.Data.OleDb)相关对象处理Excel导入功能,不是很稳定经常出问题,需要把这个问题解决掉.项目组提出使用OpenXML来处理Excel的导入 ...
- 实现excel导入导出功能,excel导入数据到页面中,页面数据导出生成excel文件
今天接到项目中的一个功能,要实现excel的导入,导出功能.这个看起来思路比较清楚,但是做起了就遇到了不少问题. 不过核心的问题,大家也不会遇到了.每个项目前台页面,以及数据填充方式都不一样,不过大多 ...
- PHP Excel导入数据到MySQL数据库
数据导出已经有了,怎么能没有数据导入呢,同样使用TP5框架,首先需要下载phpexcel.zip,放到第三方类库目录vendor目录下,然后有一个页面可以让你选择要导入的Excel文件,然后点击导入按 ...
- 【Kettle】Java借助Kettle将Excel导入数据
示例功能(仅供测试): 在JAVA项目中,将数据从Excel文件导入数据库中.实现该能有多种方法,而本例则是“不走寻常路”,尝试借助Kettle实现数据导入. 原理: Java中调用存储在Kettle ...
- 利用Excel导入数据到SAP C4C
假设要导入一个Account数据到C4C系统. 工作中心Data Workbench,工作中心视图Import,点download metadata: 会下载一个压缩包到本地. 进入文件夹Templa ...
随机推荐
- docker安装MySQL8,目录挂载、配置用户名密码、忽略表名大小写、连接数、特殊字符、时区
原文:docker安装MySQL8,目录挂载.配置用户名密码.忽略表名大小写.连接数.特殊字符.时区 一.环境配置 1.系统:centos7.3 2.docker版本:Docker version 1 ...
- 平凡主丛上的Yang-Mills理论
本文是复旦大学由丁青教授的暑期课程“Yang-Mills理论的几何及其应用”所作笔记,会有少许修正. 所需基础: 多元微积分学 微分方程(常微分方程,数学物理方程) 曲线曲面论(初等微分几何) 以下是 ...
- C++根据扩展名获取文件图标、类型
简述 在Windows系统中,根据扩展名来区分文件类型,比如:.txt(文本文件)..exe(可执行程序).*.zip(压缩文件),下面,我们来根据扩展名来获取对应的文件图标.类型. 简述 源码 源码 ...
- jquery-ui日期时间控件实现
日期控件和时间控件为独立控件,日期时间控件要同一时候导入日期控件和时间控件的js,然后在日期控件加入时间控件显示參数,没有导入时间控件js.日期控件函数设置的时间控件參将包错 日期控件官网网址:htt ...
- Win7操作系统防火墙无法关闭的问题 无法找到防火墙关闭的地方的解决的方法
计算机右键-管理-服务和应用程序-服务,找到Windows Firewall.双击,启动类型设为自己主动,确定.若这不到这项服务说明被阉割.考虑更换介质安装系统.360等一些安全软件带也有防火墙.全然 ...
- unity3d 自己主动文件更新系统
游戏内容变更之后.一般而言不会想让玩家下载整个游戏包又一次安装,由于这样会流失大量玩家.全部游戏更新是必须的. 更新的内容包含 数据.资源.代码. 基本原理: 1.将须要更新的文件打包成AssetBu ...
- UItableView中的一些方法
有关UITableView的知识点相对照较简单,一些简单的经常使用的方法有时间在写上: 以下的几个方法假设仅仅是展示UITableView是用不到的,须要对对应的区段进行操作的时候才会用到. 方法例如 ...
- C内存管理一 概述
我们写了这么多年的程序猿.可能理论方面还比不上大学生.有人 "嘘"我了,假设有能回答下面几个问题的同学请举手: 1.面试常常遇到:同学请说说堆栈的差别? 2.同学请说说一个函数在堆 ...
- HDU 2112 HDU Today <SPFA算法+map函数>
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- pyton写购物车
pyton写购物车 基本要求: 用户输入工资,然后打印购物菜单用户可以不断的购买商品,直到余额不够为止退出时打印用户已购买的商品和剩余金额.. 1.这个程序功能不完整,bug很多,练手之作. good ...