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"));
} } }

  

        /// <summary>
/// http://www.aspose.com/docs/display/cellsnet/Importing+Data+to+Worksheets
/// </summary>
/// <param name="table"></param>
private void ExporttoExcelExcel(DataTable table, string fileName,int type)
{
//Instantiate a new Workbook
Workbook book = new Workbook();
// book.Save("",SaveFormat.Xlsx);
//Clear all the worksheets
book.Worksheets.Clear();
//Add a new Sheet "geovindu";
Worksheet worksheet = book.Worksheets.Add("geovindu");
HttpContext context = HttpContext.Current;
context.Response.Clear();
worksheet.Cells.ImportDataTable(table, true, "A1"); context.Response.Buffer = true;
if (type == 1)
{
context.Response.ContentType = "application/ms-excel"; //2003
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();
} if (type == 2)
{
//1.//不可以 ,擴展名出現問題
//context.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; // 2007
//context.Response.Charset = "utf-8";
//context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
//context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName + ".xlsx");
////book.Save("", SaveFormat.Xlsx);
//context.Response.BinaryWrite(book.SaveToStream().ToArray()); ////Save with default format, send the file to user so that he may open the file in
////some application or save it to some location
//// book.Save(this.Response, "importeddata.xlsx", ContentDisposition.Attachment, new XlsSaveOptions(SaveFormat.Xlsx));
//context.Response.Flush();
//context.Response.End(); //2.
string sb = DataTabletoHmtl(table);
// string sb = toHTML_Table(table);
byte[] array = Encoding.UTF8.GetBytes(sb.ToString());
MemoryStream ms = new MemoryStream(array);
LoadOptions lo = new LoadOptions(LoadFormat.Html);
book = new Workbook(ms, lo);
worksheet = book.Worksheets.Add("geovindu");
book.Save(Response, fileName + ".xlsx", ContentDisposition.Attachment, new XlsSaveOptions(SaveFormat.Xlsx));
} }
/// <summary>
///
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public string DataTabletoHmtl(DataTable dt)
{
if (dt.Rows.Count == 0)
return ""; string tab = "\t"; StringBuilder sb = new StringBuilder(); sb.AppendLine("<html>");
sb.AppendLine(tab + "<body>");//不帶HTML頭,會顯示格式問題.塗聚文註
sb.AppendLine(tab + tab + "<table>"); // headers.
sb.Append(tab + tab + tab + "<tr>"); foreach (DataColumn dc in dt.Columns)
{
sb.AppendFormat("<td>{0}</td>", dc.ColumnName);
} sb.AppendLine("</tr>"); // data rows
foreach (DataRow dr in dt.Rows)
{
sb.Append(tab + tab + tab + "<tr>"); foreach (DataColumn dc in dt.Columns)
{
string cellValue = dr[dc] != null ? dr[dc].ToString() : "";
sb.AppendFormat("<td>{0}</td>", cellValue);
} sb.AppendLine("</tr>");
} sb.AppendLine(tab + tab + "</table>");
sb.AppendLine(tab + "</body>");
sb.AppendLine("</html>");
return sb.ToString();
} /// <summary>
///
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public string toHTML_Table(DataTable dt)
{
if (dt.Rows.Count == 0)
return ""; StringBuilder builder = new StringBuilder();
builder.Append("<html>");
builder.Append("<head>");
builder.Append("<title>");
builder.Append("Page-");
builder.Append(Guid.NewGuid().ToString());
builder.Append("</title>");
builder.Append("</head>");
builder.Append("<body>");
builder.Append("<table border='1px' cellpadding='5' cellspacing='0' ");//有樣式,會提示有格式問題. 塗聚文註
builder.Append("style='border: solid 1px Silver; font-size: x-small;'>");
builder.Append("<tr align='left' valign='top'>");
foreach (DataColumn c in dt.Columns)
{
builder.Append("<td align='left' valign='top'><b>");
builder.Append(c.ColumnName);
builder.Append("</b></td>");
}
builder.Append("</tr>");
foreach (DataRow r in dt.Rows)
{
builder.Append("<tr align='left' valign='top'>");
foreach (DataColumn c in dt.Columns)
{
builder.Append("<td align='left' valign='top'>");
builder.Append(r[c.ColumnName]);
builder.Append("</td>");
}
builder.Append("</tr>");
}
builder.Append("</table>");
builder.Append("</body>");
builder.Append("</html>"); return builder.ToString();
}

 net4.0

        public string ConvertDataTableToHTMLTableInOneLine(DataTable dt)
{
//Convert DataTable To HTML Table in one line
return "<table>\n<tr>" + string.Join("", dt.Columns.Cast<DataColumn>().Select(dc => "<td>" + dc.ColumnName + "</td>")) + "</tr>\n" +
"<tr>" + string.Join("</tr>\n<tr>", dt.AsEnumerable().Select(row => "<td>" + string.Join("</td><td>", row.ItemArray) + "</td>").ToArray()) + "</tr>\n<\table>"; }

  

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

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

    /// <summary> /// 涂聚文 /// 20150728 /// EXCEL win7 32位,64位OK /// </summary> public class ...

  2. mysql --secure-file-priv is set to NULL.Operations related to importing and exporting data are disabled

    --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabledmy ...

  3. ASP.NET Core 数据保护(Data Protection 集群场景)【下】

    前言 接[中篇],在有一些场景下,我们需要对 ASP.NET Core 的加密方法进行扩展,来适应我们的需求,这个时候就需要使用到了一些 Core 提供的高级的功能. 本文还列举了在集群场景下,有时候 ...

  4. ASP.NET Core 数据保护(Data Protection)【中】

    前言 上篇主要是对 ASP.NET Core 的 Data Protection 做了一个简单的介绍,本篇主要是介绍一下API及使用方法. API 接口 ASP.NET Core Data Prote ...

  5. ASP.NET Core 数据保护(Data Protection)【上】

    前言 上一篇博客记录了如何在 Kestrel 中使用 HTTPS(SSL), 也是我们目前项目中实际使用到的. 数据安全往往是开发人员很容易忽略的一个部分,包括我自己.近两年业内也出现了很多因为安全问 ...

  6. Tutorial: Importing and analyzing data from a Web Page using Power BI Desktop

    In this tutorial, you will learn how to import a table of data from a Web page and create a report t ...

  7. Asp.net core 学习笔记 ( Data protection )

    参考 : http://www.cnblogs.com/xishuai/p/aspnet-5-identity-part-one.html http://cnblogs.com/xishuai/p/a ...

  8. 扩增子分析QIIME2-3数据导出Exporting data

    # 激活工作环境 source activate qiime2-2017.8 # 建立工作目录 mkdir -p qiime2-exporting-tutorial cd qiime2-exporti ...

  9. csharp:ASP.NET SignalR

    http://signalr.net/ https://github.com/SignalR/SignalR http://www.asp.net/signalr http://www.cnblogs ...

随机推荐

  1. [原创]Java中的字符串比较,按照使用习惯进行比较

    java中的字符串比较一般可以采用compareTo函数,如果a.compareTo(b)返回的是小于0的数,那么说明a的unicode编码值小于b的unicode编码值. 但是很多情况下,我们开发一 ...

  2. FindProcDLL::FindProc 和 KillProcDLL::KillProc,必须使用WPF x86编译出来的程序

    如果是 WPF 编写的exe,想用NSIS打包. 脚本里面要注意了,如果使用了 FindProcDLL::FindProc 和 KillProcDLL::KillProc, 那么WPF 的编译选项必须 ...

  3. 让Extjs EditorGridPanel 编辑时支持方向键

    在用 extjs editorgridpanel 进行输入编辑的时候, 默认情况下只支持使用 tab 键可以实现焦点切换, 如果想让editorgridpanel 在编辑时通过方向键来实现焦点跳转切换 ...

  4. 读Java 804 - Quick refresher

    Upcast永远是成功的,但Downcast不是,记得做instanceof判断 仅抛不同异常,而返回值相同的重载是不可以的 static import只会import静态类 static metho ...

  5. rbenv Your user account isn't allowed to install to the system Rubygems

    Clone一个新Rails项目到Mac, bundle install 的时候遇到下面的提示 Fetching source index from http://rubygems.org/ Your ...

  6. English Metric Units and Open XML

    English Metric Units and Open XML 在Open XML里使用了English Metric Units(EMUs)来作为度量单位.比如 public class Ext ...

  7. 从远程服务器数据库中同步数据到本地数据库 sql server 2008 开启分布

    控制面板\所有控制面板项\管理工具 打开“管理工具――组件服务”,以此打开“组件服务――计算机”,在“我的电脑”上点击右键.在MSDTC选项卡中,点击“安全配置”按钮. 在安全配置窗口中做如下设置: ...

  8. Linux(Centos)下jdbc连接oracle速度超慢的问题

    最近在centos下写个java swing程序,发现在linux用jdbc连接oracle及其缓慢,还经常失败.但是同样的程序在windows下运行就连接的非常快.网上搜索了很长时间都和我这情况没关 ...

  9. swift 方法

    swift的类,结构体,枚举中都可以定义方法. 1:实例方法.类似于类成员方法 1.1实例方法是属于类,结构体,枚举的实例的方法.通过其实例访问. class CShow{ func testShow ...

  10. caffe上使用hdf5格式文件以及回归(regression)问题

    最近用caffe做了一下regression问题,先用data layer中的data,float_data试了一下,data用来存放图片,float_data存放regression的values, ...