您的位置:首页 > 编程语言 > ASP

asp.net 导入和导出Excel

2009-09-15 12:10 405 查看
导出:
  导入模板
        string filePath = Server.MapPath("~/TemplateFile/按天计薪模板.xls");
        string newpath = Server.MapPath("~/TemplateFile/" + Guid.NewGuid() + ".xls");
        File.Copy(filePath, newpath);
        File.SetAttributes(newpath, FileAttributes.Normal);
        Stream s = File.Open(newpath, FileMode.Open);
  //----------创建Excel
        HSSFWorkbook wb = new NPOI.HSSF.UserModel.HSSFWorkbook(s);
        s.Close(); 
        File.Delete(newpath);
        HSSFSheet sheet = wb.GetSheetAt(0);
        string strAdd = string.Empty;
        string strnull = string.Empty;
        int rowCount = sheet.LastRowNum - 1;
        StringBuilder sbError = new StringBuilder();
        HSSFCell cell;
        string where = " AND Dealed=1  AND AuditingState=’finished’  AND RewardType=’day’ " + strwhere;
        DataTable dt = ProjecUsertDAL.GetPartTimeReward_WFLog(where);
      //创建行
        HSSFRow row2 = sheet.GetRow(3);
        if (row2 == null)
            row2 = new HSSFRow(wb, sheet, 3);
        if (row2 != null)
        {
            string pid = Request["pid"];
            if (pid != null)
            {
    //获取单元格
                HSSFCell cell2 = row2.GetCell(1);
                cell2.SetCellValue(ProjectNO);
                HSSFCell cell6 = row2.GetCell(6);
                cell6.SetCellValue(ProjectName);
                HSSFCell cell9 = row2.GetCell(9);
                cell9.SetCellValue(date);
                HSSFCell cell12 = row2.GetCell(12);
                cell12.SetCellValue(Request["city"]);
        
        #region 输出Excel下载
        wb.Write(Response.OutputStream);
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(Path.GetFileName("按天计薪模板.xls"), System.Text.Encoding.UTF8));
        Response.ContentType = "application/octet-stream";
        Response.Flush();
        Response.End();
        #endregion

导入:
          // 获取导入的路径
           string filePath = Path.Combine(Request.PhysicalApplicationPath, string.Format("Temp//{0}", FileUpload1.FileName));
                Stream s = File.Create(filePath);
                s.Write(FileUpload1.FileBytes, 0, FileUpload1.FileBytes.Length);
             // 创建Excel
                HSSFWorkbook wb = new NPOI.HSSF.UserModel.HSSFWorkbook(s);
                HSSFSheet sheet = wb.GetSheetAt(0);
                string strAdd =string.Empty;
                string strnull = string.Empty;
                int rowCount = sheet.LastRowNum -1;
                StringBuilder sbError = new StringBuilder();
                for (int i = 2; i < rowCount; i++)
                {
                    HSSFRow row = sheet.GetRow(i);
                     strnull = CheckValid(row);

                    if (string.IsNullOrEmpty(strnull) == false)
                    {
                        sbError.Append( string.Format("<tr><td style=’cursor:hand;’ onclick=/"document.all.r{0}.style.display =document.all.r{0}.style.display == ’’?’none’:’’;/">第{0}行导入失败!<div id=’r{0}’ style=’display:none’>原因为:{1}</div></td></tr>"
                            ,i+1 , strnull ));
                        continue;
                    }
                    else
                    {
                         strAdd = AddData(row);
                        if (string.IsNullOrEmpty(strAdd) == false)
                        {
                            sbError.Append(string.Format("<tr><td style=’cursor:hand;’ onclick=/"document.all.r{0}.style.display =document.all.r{0}.style.display == ’’?’none’:’’;/">第{0}行导入失败!<div id=’r{0}’ style=’display:none’>原因为:{1}</div></td></tr>"
                             , i + 1, strAdd));

                        }

                    }
                    strAdd = string.Empty;
                    strnull = string.Empty;
                }
               
                s.Close();
                File.Delete(filePath);
                if (sbError.Length < 1)
                {
                    labMsg.Text = "导入成功!";
                }
                else
                {
                    labMsg.Text = string.Format("<table class=’errorMsg’>{0}</table>",sbError.ToString());
                }
               控件下载地址:http://www.openso.net/downtool?id=264
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息