ASP.net转Excel

原创 2004年10月20日 22:45:00

using System;
using System.Data;
using Excel;

namespace XmlTest
{
 /// <summary>
 /// Class1 的摘要说明。
 /// </summary>
 public class Class1
 {
  public Class1(DataView dv,string str)
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //

   Excel.Application excel;
   int rowIndex=4;
   int colIndex=1;

   Excel._Workbook xBk;
   Excel._Worksheet xSt;

   excel= new Excel.ApplicationClass();;
   xBk = excel.Workbooks.Add(true);
   xSt = (Excel._Worksheet)xBk.ActiveSheet;

   //
   //取得标题
   //
   foreach(DataColumn col in dv.Table.Columns)
   {
    colIndex++;
    excel.Cells[4,colIndex] = col.ColumnName;
    xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[4,colIndex]).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;//设置标题格式为居中对齐
   }

   //
   //取得表格中的数据
   //
   foreach(DataRowView row in dv)
   {
    rowIndex ++;
    colIndex = 1;
    foreach(DataColumn col in dv.Table.Columns)
    {
     colIndex ++;
     if(col.DataType == System.Type.GetType("System.DateTime"))
     {
      excel.Cells[rowIndex,colIndex] = (Convert.ToDateTime(row[col.ColumnName].ToString())).ToString("yyyy-MM-dd");
      xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[rowIndex,colIndex]).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;//设置日期型的字段格式为居中对齐
     }
     else
      if(col.DataType == System.Type.GetType("System.String"))
     {
      excel.Cells[rowIndex,colIndex] = "'"+row[col.ColumnName].ToString();
      xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[rowIndex,colIndex]).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;//设置字符型的字段格式为居中对齐
     }
     else
     {
      excel.Cells[rowIndex,colIndex] = row[col.ColumnName].ToString();
     }
    }
   }
   //
   //加载一个合计行
   //
   int rowSum = rowIndex + 1;
   int colSum = 2;
   excel.Cells[rowSum,2] = "合计";
   xSt.get_Range(excel.Cells[rowSum,2],excel.Cells[rowSum,2]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
   //
   //设置选中的部分的颜色
   //
   xSt.get_Range(excel.Cells[rowSum,colSum],excel.Cells[rowSum,colIndex]).Select();
   xSt.get_Range(excel.Cells[rowSum,colSum],excel.Cells[rowSum,colIndex]).Interior.ColorIndex = 19;//设置为浅黄色,共计有56种
   //
   //取得整个报表的标题
   //
   excel.Cells[2,2] = str;
   //
   //设置整个报表的标题格式
   //
   xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Bold = true;
   xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Size = 22;
   //
   //设置报表表格为最适应宽度
   //
   xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Select();
   xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Columns.AutoFit();
   //
   //设置整个报表的标题为跨列居中
   //
   xSt.get_Range(excel.Cells[2,2],excel.Cells[2,colIndex]).Select();
   xSt.get_Range(excel.Cells[2,2],excel.Cells[2,colIndex]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenterAcrossSelection;
   //
   //绘制边框
   //
   xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Borders.LineStyle = 1;
   xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,2]).Borders[Excel.XlBordersIndex.xlEdgeLeft].Weight = Excel.XlBorderWeight.xlThick;//设置左边线加粗
   xSt.get_Range(excel.Cells[4,2],excel.Cells[4,colIndex]).Borders[Excel.XlBordersIndex.xlEdgeTop].Weight = Excel.XlBorderWeight.xlThick;//设置上边线加粗
   xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[rowSum,colIndex]).Borders[Excel.XlBordersIndex.xlEdgeRight].Weight = Excel.XlBorderWeight.xlThick;//设置右边线加粗
   xSt.get_Range(excel.Cells[rowSum,2],excel.Cells[rowSum,colIndex]).Borders[Excel.XlBordersIndex.xlEdgeBottom].Weight = Excel.XlBorderWeight.xlThick;//设置下边线加粗
   //
   //显示效果
   //
   excel.Visible=true;
  }
 }
}

关于C#,ASP.NET 生成Excel表格的两种方式(Datatable转Excel)

列举一些编程过程中常用代码,如Datatable转换为Excel表格给用户下载,包含了生成Excel的方法,绝对路径转换相对路径的方法,替换Html标签的方法,Json数据转换为Datatable的方...
  • u013542549
  • u013542549
  • 2017年05月04日 18:12
  • 17288

C#,Asp.NET 导入Excel,时间格式一串数字转换.

在Excel中.日期或者时间格式为:42093.6506944444 或者 0.650694444444444 大于0 表示有日期(2015-03-30),小于零则是时间(15:37) 在C# 导入读...
  • XMM_1030
  • XMM_1030
  • 2015年05月08日 15:12
  • 2445

asp.net 导出excel带图片

//此方法20条数据导出需要10秒左右,效率太低了,有时间需要再优化,关键是能导出图片了。...
  • moniteryao
  • moniteryao
  • 2015年01月14日 22:09
  • 1988

asp.net读取Excel文件的两种方法,NPOI方法

第一种方法:传统方法,采用OleDB读取EXCEL文件, 优点:写法简单,缺点:服务器必须安有此组件才能用,不推荐使用 private DataSet GetConnect_DataSet2(st...
  • lybwwp
  • lybwwp
  • 2014年02月28日 14:28
  • 21078

ASP.NET中使用Excel导入数据到数据库

Excel导入数据到数据库 2013-03-06 16:05 by Commander lang, 3092 阅读, 0 评论, 收藏,  编辑 两年前大费周章的写了个导入程序,现在要用到想直接...
  • kirawoo
  • kirawoo
  • 2015年06月09日 21:04
  • 6076

ASP.NET操作EXCEL的总结篇

http://www.jb51.net/article/26273.htm 今年有个系统的部分EXCEL的操作也让我做,顺便结合之前操作EXCEL的经验作一下总结,可能也算不上什么,对于绝大多数来...
  • a364416036
  • a364416036
  • 2016年07月29日 09:19
  • 1277

asp.net导出数据到Excel的三种方法

asp.net导出到Excel也是个老生常谈的问题,在此归纳一下。 第一种是比较常用的方法。是利用控件的RenderControl功能,得到该控件生成的HTML,然后以Excel文件的类型输出到客户...
  • zlwzlwzlw
  • zlwzlwzlw
  • 2015年02月09日 15:31
  • 2532

Asp.net操作Excel常用方法及属性

// 设置单元格格式为文本 range.NumberFormatLocal = "@"; // 获取Excel多个单元格区域:本例做为Excel表头 range = (Range)work...
  • mh942408056
  • mh942408056
  • 2014年07月25日 10:44
  • 2390

asp.net 将DataTable中的数据导出到Excel并下载方法

我上一篇文章介绍了Excel导入到DataTable的方法,总觉得少些什么,这篇我就将DataTable         中的数据导出到Excel并提供下载的方法记录下来。        ...
  • lishimin1012
  • lishimin1012
  • 2014年08月06日 15:07
  • 13851

完整的asp.net 导出table到Excel中

导出 public class HtmlDataToDocOrExcel { private Page _InvokePage; /// //...
  • wang4978
  • wang4978
  • 2014年05月15日 10:48
  • 13407
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.net转Excel
举报原因:
原因补充:

(最多只允许输入30个字)