zoukankan      html  css  js  c++  java
  • 页面打开excel

    1. File => Stream / MemoryStream


    FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.None);
                    try
                    {
                        MemoryStream stream2 = new MemoryStream();
                        try
                        {
                            byte[] buffer = new byte[0x1000];
                            int count = 0;
                            while ((count = stream.Read(buffer, 0, 0x1000)) > 0)
                            {
                                stream2.Write(buffer, 0, count);
                            }
                            if ((stream2 != null) && (stream2.Length > 0L))
                            {
                                return stream2;
                            }
                        }
                        catch
                        {
                            stream2.Close();
                        }
                    }
                    finally
                    {
                        if (stream != null)
                        {
                            stream.Close();
                        }
                        exporter.RemoveTempFiles();
                    }
                   
    2. String => File


                 FileStream fs = null;
                 string path = MapPath("~/" + summaryType + ".CSV");  
                 string content = csvHelper.ToString();
               //  fs = File.Create(path);
              //   fs.Write(System.Text.Encoding.Default.GetBytes(content), 0, content.Length);
                // fs.Write(System.Text.Encoding.UTF8.GetBytes(content), 0, content.Length);
               //  fs.Close();
                

                 fs = new FileStream(path, FileMode.Create, FileAccess.Write);
                 StreamWriter sw = null;
                 if (System.Text.Encoding.Default == System.Text.Encoding.GetEncoding("GB2312"))
                     sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("GB2312"));
                 else
                     sw = new StreamWriter(fs, System.Text.Encoding.UTF8);
                
                 sw.Write(content);
                 sw.Close();
                
    3. File => IE open

    ExportDataToCSV(summaryType, type, days);  //Generate the excel
                    string path = MapPath("~/" + summaryType + ".CSV");
                    byte[] result = File.ReadAllBytes(path);

                    //  Response.ContentType = "application/vnd.ms-excel";
                    Response.ContentType = "text/CSV";
                    Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", summaryType + ".CSV"));
                    if (System.Text.Encoding.Default == System.Text.Encoding.GetEncoding("GB2312"))
                        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                    else
                        Response.ContentEncoding = System.Text.Encoding.UTF8;

                    // Response.BinaryWrite(new byte[] { 0xEF, 0xBB, 0xBF });
                    Response.BinaryWrite(result);
                   
                    if (File.Exists(path) == true)
                    {
                        File.Delete(path);   //Generate the excel
                    }
                    Response.End();

  • 相关阅读:
    laravel 多对多 belonsToMany
    C语言union关键字
    FW:程序在内存的划分(转)
    操作系统:进程/线程同步的方式和机制,进程间通信
    FW:考查嵌入式C开发人员的最好的16道题(转)
    操作系统死锁产生、条件、和解锁
    100层高楼摔2个鸡蛋的问题?
    【转】看完这个你的位运算学得就差不多了
    函数递归的几个例子
    如何查看服务器(linux系统)当前的负载信息(转)
  • 原文地址:https://www.cnblogs.com/sui84/p/6777036.html
Copyright © 2011-2022 走看看