csharp:asp.net Importing or Exporting Data from Worksheets using aspose cell

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using Aspose.Cells;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Runtime;
using System.Text;

namespace asposecelldemo
{

    /// <summary>
    ///
    /// </summary>
    public partial class _Default : System.Web.UI.Page
    {

        DataTable getData()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("id", typeof(int));
            dt.Columns.Add("name", typeof(string));
            dt.Rows.Add(1, "geovindu");
            dt.Rows.Add(2, "geov");
            dt.Rows.Add(3, "塗斯博");
            dt.Rows.Add(4, "趙雅芝");
            dt.Rows.Add(5, " なわち日本語");
            dt.Rows.Add(6, "처리한다");
            dt.Rows.Add(7, "涂聚文");
            dt.Rows.Add(8, "塗聚文");
            return dt;
        }

        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.GridView1.DataSource = getData();
                this.GridView1.DataBind();

            }
        }
        /// <summary>
        /// http://www.aspose.com/docs/display/cellsnet/Importing+Data+to+Worksheets
        /// </summary>
        /// <param name="table"></param>
        private void ExporttoExcelExcel(DataTable table, string fileName)
        {
            //Instantiate a new Workbook
            Workbook book = new Workbook();
            //Clear all the worksheets
            book.Worksheets.Clear();
            //Add a new Sheet "Data";
            Worksheet worksheet = book.Worksheets.Add("Data");
            HttpContext context = HttpContext.Current;
            context.Response.Clear();
            worksheet.Cells.ImportDataTable(table, true, "A1");
            context.Response.Buffer = true;
            context.Response.ContentType = "application/ms-excel";
            context.Response.Charset = "utf-8";
            context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
            context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName + ".xls");
            context.Response.BinaryWrite(book.SaveToStream().ToArray());
            context.Response.Flush();
            context.Response.End();

        }     

        /// <summary>
        ///
        /// </summary>
        /// <param name="dataTable"></param>
        /// <param name="fileName"></param>
        protected void ExportToExcel(DataTable dataTable, string fileName)
        {

            HttpContext context = HttpContext.Current;
            StringBuilder sb = new StringBuilder();

            //foreach (DataColumn column in dataTable.Columns)
            //{
            //    context.Response.Write(column.ColumnName + ",");
            //}
            //context.Response.Write(Environment.NewLine);

            //foreach (DataRow row in dataTable.Rows)
            //{
            //    for (int i = 0; i < dataTable.Columns.Count; i++)
            //    {
            //        context.Response.Write(row[i].ToString() + ",");
            //    }
            //    context.Response.Write(Environment.NewLine);
            //} 此法亚洲语言用会出现乱码
            foreach (DataColumn column in dataTable.Columns)
            {
                sb.Append(column.ColumnName + ",");
            }
            sb.Append(Environment.NewLine);

            foreach (DataRow row in dataTable.Rows)
            {
                for (int i = 0; i < dataTable.Columns.Count; i++)
                {
                    sb.Append(row[i].ToString() + ",");
                }
                sb.Append(Environment.NewLine);
            }

            StringWriter sw = new StringWriter(sb);
            sw.Close();
            context.Response.Clear();
            context.Response.Buffer = true;
            context.Response.Charset = "utf-8";
            context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
            context.Response.HeaderEncoding = System.Text.Encoding.UTF8;
            context.Response.ContentType = "text/csv";
            //context.Response.ContentType = "application/ms-excel";
            context.Response.BinaryWrite(new byte[] { 0xEF, 0xBB, 0xBF });
            context.Response.Write(sw);
            context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8).Replace("+", "%20")+ ".csv");//亂碼
            context.Response.Flush();
            context.Response.End();
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            ExportToExcel(getData(), "塗聚文" + DateTime.Now.ToString("yyyyMMddHHmmssfff"));
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Button2_Click(object sender, EventArgs e)
        {
            ExporttoExcelExcel(getData(),"geovindu"+DateTime.Now.ToString("yyyyMMddHHmmssfff"));
        }

    }

}
时间: 2024-11-03 11:15:58

csharp:asp.net Importing or Exporting Data from Worksheets using aspose cell的相关文章

ASP.NET Core 数据保护(Data Protection 集群场景)下篇_实用技巧

前言  接[中篇] ,在有一些场景下,我们需要对 ASP.NET Core 的加密方法进行扩展,来适应我们的需求,这个时候就需要使用到了一些 Core 提供的高级的功能.  本文还列举了在集群场景下,有时候我们需要实现自己的一些方法来对Data Protection进行分布式配置.  加密扩展  IAuthenticatedEncryptor 和 IAuthenticatedEncryptorDescriptor  IAuthenticatedEncryptor是 Data Protection

ASP.NET Core 数据保护(Data Protection)上篇_实用技巧

前言  上一篇记录了如何在 Kestrel 中使用 HTTPS(SSL), 也是我们目前项目中实际使用到的.  数据安全往往是开发人员很容易忽略的一个部分,包括我自己.近两年业内也出现了很多因为安全问题导致了很多严重事情发生,所以安全对我们开发人员很重要,我们要对我们的代码的安全负责.  在工作中,我们常常会见到 encode,base64,sha256, rsa, hash,encryption, md5 等,一些人对他们还傻傻分不清楚,也不知道什么时候使用他们,还有一些人认为MD5就是加密算

ASP.NET Core 数据保护(Data Protection)中篇_实用技巧

前言  上篇主要是对 ASP.NET Core 的 Data Protection 做了一个简单的介绍,本篇主要是介绍一下API及使用方法.  API 接口  ASP.NET Core Data Protectio 主要对普通开发人员提供了两个接口,IDataProtectionProvider 和 IDataProtector.  我们先看一下这两个接口的关系: namespace Microsoft.AspNetCore.DataProtection { // // 摘要: // An in

asp.net Jquery+ajax请求data显示在GridView

这是一款简单的实用的jquery+ajax请求data显示在gridview的asp教程.net程序哦,下面我们来看看关于如何让ajax返回的值显示在asp.net教程 data显示在gridview上吧. aspx文件 protected void page_load(object sender, eventargs e) { if (request["id"] != null) { sqlconnection conn=null; sqlcommand cmd = null; sq

Csharp+Asp.net系列教程(一)

asp.net|教程 本教程参考C#和ASP.NET程序设计教程撰写,有什么不足之处请大家指出,或在老猫的理想BLOG留言.首先讲解一下c#,这里只是粗略的讲解,详细内容请购买相关书籍,或参阅相关文档.c#已经取消了c++中的指针,并且在c++中大量被使用的操作符(:: ->)已经不在出现,c#中指支持一个".".c#具有面向对象编程语言的所有特性,如封装.继承.多态等.而且比java更面向对象,每种类型都可以看作一个对象.但c#指允许单继承,即一个类不会有多个基类.另外,c#没

Csharp+Asp.net系列教程(四)(1)

asp.net|教程 迈克老猫来自:老猫的理想 本教程参考C#和ASP.NET程序设计教程撰写,有什么不足之处请大家指出,或在老猫的理想BLOG留言. 这次简述一下操作符 1.算术操作符 算术操作符包括加(+).减(-).乘(*).除(/)和求余(%).加减操作符除了用于整数和实数的加减运算外,还适用于枚举类型.字符串类型和委托类型,这是通过操作符重栽实现的. string mf1="Mike"; string mf2="Cat"; string mf3=mf1+m

Csharp+Asp.net系列教程(四) (2)

asp.net|教程 9.[] 运算符 方括号 ([]) 用于数组.索引器和属性,也可用于指针. type [] array [ indexexpr ] 其中: type 类型. array 数组. indexexpr 索引表达式 10.() 运算符 除了用于指定表达式中运算符的顺序外,圆括号还用于指定转换(类型转换) ( type ) expr 其中:type expr 要转换为的类型名. expr 一个表达式.转换显式调用从 expr 类型到 type 类型的转换运算符:如果未定义这样的转换

Csharp+Asp.net系列教程(五)

asp.net|教程 本教程参考C#和ASP.NET程序设计教程撰写,有什么不足之处请大家指出,或在老猫的理想BLOG留言. 长假就要过去了.钱包也空空如也了,又要投入让人生畏的紧张工作中了... 感慨虽然很多,可是教程还是要继续的写,先发几句牢骚.^_^,不过教程可能以后要写的慢些了,因为心有余而力不足丫!不说废话进入正题: 有网友说教程过于繁琐,呵呵,下面正好要分析一下流程控制语句,有C程序设计基础的就略过这段,考虑有新手还是简要的介绍一下,详细还请参阅谭浩强教授的<C语言程序设计>一书吧

Csharp+Asp.net系列教程(六)

asp.net|教程 本教程参考C#和ASP.NET程序设计教程撰写,有什么不足之处请大家指出,或在老猫的理想BLOG留言. 好些天不写了.今天事情较少,有几个网友总是问,就又写了点东西.可能疏漏比较多,希望大家帮忙指正 预处理指令:与c++不同,c#没有独立的预处理器.在c#中,预处理指令并不是编译器开始编译代码之前的一个单独的处理步骤,而是作为词法分析的一部分来执行的.预处理指令都以#号开头并位于行首. #define指令用于定义符合,他的作用域是该定义所在的整个文件,符号定义必须放在所有其