protected void Button1_Click(object sender, EventArgs e)
        {
            if (ViewState["unitname"] != null && ViewState["unitprice"] != null)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add(new DataColumn("单位"));
                dt.Columns.Add(new DataColumn("金额"));
                DataRow dr = dt.NewRow();

                dr["单位"] = ViewState["unitname"];
                dr["金额"] = ViewState["unitprice"];
                dt.Rows.Add(dr);

                CreateExcel(dt, new string[] { "单位", "金额" }, "application/ms-excel", "充值记录-单位" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff"));
            }
            else
            {
                ClientScript.RegisterStartupScript(this.GetType(), "alertinfo", "alert('没有数据可供导出!');", true);
            }
        }

public void CreateExcel(DataTable dt, string[] toprows, string FileType, string FileName)
        {
            Response.Clear();
            Response.Charset = "UTF-8";
            Response.Buffer = true;
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            Response.AppendHeader("Content-Disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls\"");
            Response.ContentType = FileType;
            string colHeaders = string.Empty;
            string ls_item = string.Empty;
            DataRow[] myRow = dt.Select();
            int i = 0;
            int cl = dt.Columns.Count;
            //列名
            for (int j = 0; j < toprows.Length; j++)
            {
                if (j == (toprows.Length - 1))
                {
                    ls_item += toprows[j].ToString() + "\n";
                }
                else
                {
                    ls_item += toprows[j].ToString() + "\t";
                }
            }
            Response.Output.Write(ls_item);
            ls_item = string.Empty;

            foreach (DataRow row in myRow)
            {

                for (i = 0; i < cl; i++)
                {
                    if (dt.Columns[i].ColumnName.ToUpper() == "OPERACCOUNTVALUE")
                    {
                        if (i == (cl - 1))
                        {
                            ls_item += (Convert.ToInt32(row[i]) * 0.01).ToString("F2") + "\n";
                        }
                        else
                        {
                            ls_item += (Convert.ToInt32(row[i]) * 0.01).ToString("F2") + "\t";
                        }
                    }
                    else if (dt.Columns[i].ColumnName.ToLower() == "unitid")
                    {
                        Dictionary<string, string> dic = ViewState["dic"] as Dictionary<string, string>;

                        if (i == (cl - 1))
                        {
                            ls_item += dic[row[i].ToString()] + "\n";
                        }
                        else
                        {
                            ls_item += dic[row[i].ToString()] + "\t";
                        }
                    }
                    else if (dt.Columns[i].ColumnName.ToLower() == "confrim_status")
                    {
                        string li = "";
                        if (row[i].ToString() == "0")
                        {
                            li = "未审核";
                        }
                        if (row[i].ToString() == "1")
                        {
                            li = "已审核";
                        }
                        if (row[i].ToString() == "2")
                        {
                            li = "不通过";
                        }
                        if (i == (cl - 1))
                        {
                            ls_item += li + "\n";
                        }
                        else
                        {
                            ls_item += li + "\t";
                        }
                    }
                    else
                    {
                        if (i == (cl - 1))
                        {
                            ls_item += row[i].ToString() + "\n";
                        }
                        else
                        {
                            ls_item += row[i].ToString() + "\t";
                        }
                    }
                }
                Response.Output.Write(ls_item);
                ls_item = string.Empty;
            }
            Response.Output.Flush();
            Response.End();
        }
//mvc 下载

   public FileResult ExportExcel()
        {
            string sql = "";
            DataTable dt = RemotingDAL.GetRecords(sql);

            string[] toprows = new string[] { "id" };

            //创建Excel文件的对象(前提:下载NPOI.dll并在项目中引用)
            NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
            //添加一个sheet
            NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("Sheet1");

            //标题

            NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0);
            for (int j = 0; j < toprows.Length; j++)
            {
                row1.CreateCell(j).SetCellValue(toprows[j]);
            }


            DataRow[] myRow = dt.Select();
            int i = 0;
            int cl = dt.Columns.Count;

            foreach (DataRow row in myRow)
            {
                NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + 1);
                for (int j = 0; j < cl; j++)
                {
                    //图片下载
                    if (dt.Columns[j].ColumnName.ToUpper() == "LISTPICURL" || dt.Columns[j].ColumnName.ToUpper() == "PRIMARYPICURL" || dt.Columns[j].ColumnName.ToUpper() == "PICURL1" || dt.Columns[j].ColumnName.ToUpper() == "PICURL2" || dt.Columns[j].ColumnName.ToUpper() == "PICURL3" || dt.Columns[j].ColumnName.ToUpper() == "PICURL4")
                    {
                        string path = DownloadPicture(row[j].ToString(), dt.Columns[j].ColumnName, row["id"].ToString());
                        rowtemp.CreateCell(j).SetCellValue(path);
                    }
                    else
                    {
                        rowtemp.CreateCell(j).SetCellValue(row[j].ToString());
                      
                    }
                }
                i++;
            }
            

            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            book.Write(ms);
            ms.Seek(0, SeekOrigin.Begin);
            string fileName = "" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff")+".xls";
            return File(ms, "application/vnd.ms-excel", fileName);

            
        }

        public string DownloadPicture(string imgUrl, string colname, string id)
        {
            try
            {
                //图片保存路径
                string path = "D:\\yximages\\" + DateTime.Now.ToString("yyyyMMddHH") + "\\";
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }

                string fileName = id + "_" + colname;

                if (path.Equals(""))
                    throw new Exception("未指定保存文件的路径");
                string imgName = imgUrl.ToString().Substring(imgUrl.ToString().LastIndexOf("/") + 1);
                string defaultType = ".jpg";
                string[] imgTypes = new string[] { ".jpg", ".jpeg", ".png", ".gif", ".bmp" };
                string imgType = imgUrl.ToString().Substring(imgUrl.ToString().LastIndexOf("."));
                string imgPath = "";
                foreach (string it in imgTypes)
                {
                    if (imgType.ToLower().Equals(it))
                        break;
                    if (it.Equals(".bmp"))
                        imgType = defaultType;
                }

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(imgUrl);
                request.UserAgent = "Mozilla/6.0 (MSIE 6.0; Windows NT 5.1; Natas.Robot)";
                request.Timeout = 3000;

                WebResponse response = request.GetResponse();
                Stream stream = response.GetResponseStream();

                //if (response.ContentType.ToLower().StartsWith("image/"))
                //{
                byte[] arrayByte = new byte[1024];
                int imgLong = (int)response.ContentLength;
                int l = 0;

                if (fileName == "")
                    fileName = imgName;

                FileStream fso = new FileStream(path + fileName + imgType, FileMode.Create);
                while (l < imgLong)
                {
                    int i = stream.Read(arrayByte, 0, 1024);
                    fso.Write(arrayByte, 0, i);
                    l += i;
                }

                fso.Close();
                stream.Close();
                response.Close();
                imgPath =  fileName + imgType;
                return imgPath;
            }
            catch (Exception ex)
            {
                return "";
            }
           
        }

 



 

 

 

posted on 2017-09-01 15:27  ftk0  阅读(190)  评论(0)    收藏  举报