7经典三种C#导入导出到EXCEL的方法(C#开发人员必备)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

string fPath = Request.PhysicalApplicationPath + "xx/" + newname; fPath = fPath.Replace("\\", "/"); DataTable dt = ExcelToDS(fPath, "LAWUSER");
bool IsSuccessful = true; string _errorRow = ""; foreach (DataRow row in dt.Rows) { if (row["姓名"].ToString().Trim().Equals("")) { continue; } string id = row["编号"].ToString(); string name = row["姓名"].ToString(); string tel = row["联系电话"].ToString(); string sql = "insert into AA values('" + id + "','" + name + "','" + tel + "')"; try { int i = SqlHelper1.ExecuteNonQuery(sql); if (i > 0) { this.RegisterStartupScript("4", "susccessfully"); } else { this.RegisterStartupScript("4","插入错误"); } } catch (Exception ex) { this.RegisterStartupScript("3","alert('"+ex.Message+"');"); } } } -----函数 ExcelToDS,这里的 ExtandName 是指 EXCEL 中对应的 Sheet1 修改后的名称 private DataTable ExcelToDS(string Path, string ExtandName) { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path + ";" + "Extended Properties='Excel 8.0;'"; OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); string strExcel = ""; OleDbDataAdapter myCommand = null; DataSet ds = null; strExcel = "select * from [" + ExtandName + "$]"; myCommand = new OleDbDataAdapter(strExcel, strConn); ds = new DataSet(); myCommand.Fill(ds, "table1"); return ds.Tables[0];
(
)WITH (PAD_INDEX ) ON [PRIMARY]
= OFF, ALLOW_ROW_LOCKS
= OFF, STATISTICS_NORECOMPUTE = ON, ALLOW_PAGE_LOCKS
= ON) ON [PRIMARY]
= OFF, IGNORE_DUP_KEY
注意表列与 DataTable 中的数据一一对应即可 2, 导出,将 HTML 导出到 EXCEL,注:我这里是后台实现导出,也有用 JS 脚本导出的。这里 不再赘述。 步骤:设置输出 HTTP 字符集,设置 HTTP 的 HEADER 信息,设置 HTTP 输出的文件类型,将内 容输出到设置的对象中。 代码: -----单击按钮事件
wenku.baidu.com
3.导出,将 DataTable 中的信息导出到 EXCEL 中 步骤:我这里新建了一个页面,专门用来处理导出到 EXCEL 的函数
这个页面名:PrintTemplate.aspx
代码如下: 前台: <div style="text-align:left;width:100%;" id="divButton"> <input id="btnExportExcel" runat="server" class="button1" style="font-size:medium; height: 18px; width: 134px;" name="btnPrintList" type="button" value="【导出至EXCEL】" onclick="RemoveElements('none');" onserverclick="btnExportExcel_ServerClick" /> bold; font-size: 18px; vertical-align: middle;"></div> <div runat="server" id="divResult" style="width:100%;border-collapse:collapse; text-align:center; background-color:#ffffff"></div> 后台: -----GenerateTable()函数,生成 Table private void GenerateTable() { DataTable dt = (DataTable)Session["dt_print"]; System.Text.StringBuilder strHtml = new System.Text.StringBuilder(); string value = string.Empty; string strLetter = string.Empty; string style = string.Empty; ArrayList strArr = new ArrayList(); if (dispose != null) { if (!dispose.Equals(string.Empty)) { string[] str = dispose.Split(','); foreach (string s in str) strArr.Add(s); } } try </div> <div runat="server" id="divTitle" style="width:100%;text-align:center; font-weight:
<asp:FileUpload ID="FU" runat="server" Width="595px" /> <asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="btnUpload_Click" />
(2) 后台 Default.asp.cs 代码: -----按钮单击事件 btnUpload_Click
protected void btnUpload_Click(object sender, EventArgs e) { if (this.FU.PostedFile == null || this.FU.PostedFile.FileName == "") 择上载文件 { this.RegisterStartupScript("1","alert('请选择上传的数据文件!');"); return; } string m_ExtName = Path.GetExtension(TrimHtml(Path.GetFileName(this.FU.PostedFile.FileName))).ToLower(); if ((m_ExtName.Replace(".", "") != "xls")) { this.RegisterStartupScript("2","alert('请上传Execl类型文件!');"); return; } string newname = DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + m_ExtName; FU.PostedFile.SaveAs(Server.MapPath("~/xx/"+newname)); //判断是否选
CREATE TABLE [dbo].[AA]( [id] [int] NOT NULL, [name] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_AA] PRIMARY KEY CLUSTERED [id] ASC [tel] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
C#导入导出 EXCEL
------------阿秋笔记 add by 2011-3-24 注:本文中的所有案例全部测试通过,请放心使用! 三大功能: 1, 导入: 把 EXCEL 文件导入到对应的数据库表中 2, 导出: (1)把 HTML 页面直接导出到 EXCEL; (2)把 DataTable 对象导出到 EXCEL 环境:VS2005 + SQL SERVER 2005 Language:C# 1, 导入 步骤:上传 EXCEL 文件,保存到服务器某一个文件夹下,然后解析的 DataTable 中,在分 解插入到数据库表中 实现代码: (1) 前台,Default.aspx 放入 一个上传控件 FileUpload + 按钮控件 Button 代码:
this.EnableViewState = false; System.IO.StringWriter tw = new System.IO.StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(tw); toexcel.RenderControl(hw); Response.Write(tw.ToString()); Response.End(); } 注意:toexcel 为需要导出的 div 的 ID
} -----对字符串操作函数 TrimHtml private string TrimHtml(string str) { return str.Replace("&", "").Replace("<", "").Replace("'", "").Replace("\"", "").Replace("\\", ""); } (3) 数据库表格式:
protected void btn_print_ServerClick(object sender, EventArgs e) { string FileName = DateTime.Now.ToShortDateString()+Guid.NewGuid().ToString().Substring(0,5)+".xls"; Response.Charset = "GB2312"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); if (Path.GetFileNameWithoutExtension(FileName).Length < 24) { Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(Path.GetFileNameWithoutExtension(FileName) + Path.GetExtension(FileName)));} else { Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode( Path.GetFileNameWithoutExtension(FileName).Substring(0, 24) + Path.GetExtension(FileName)));} Response.ContentType = "application/ms-excel";
相关文档
最新文档