代码如下:

         int intDataCount = myData.Tables[0].Rows.Count;

       Microsoft.Office.Interop.Excel.Application app = null;
Microsoft.Office.Interop.Excel.Workbook workbook = null;
Microsoft.Office.Interop.Excel.Worksheet sheet = null;
object missing = System.Reflection.Missing.Value; //     表示 System.Reflection.Missing 类的唯一实例。
string strPath = string.Empty;
string strFileName = string.Empty;
try
{
app = new Microsoft.Office.Interop.Excel.Application();
app.Visible = false; // 不显示,仅后台生成
workbook = app.Workbooks.Add(true); // 如果打开已存在文件,这里用Open,保存使用Save
// 添加sheet的方法
workbook.Worksheets.Add(missing, missing, missing, missing);
// 修改sheet名的方法,注意sheet的下标从1开始
sheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[];
sheet.Name = "new sheet name"; //想要将sheet的名称改为Sheet1,则需改
// 添加sheet的方法
// 注销 workbook.Worksheets.Add(missing, missing, missing, missing);
// 中间不变
//sheet.Name = "Sheet1"; //添加标题
app.Cells[, ] = strTitle;
app.Cells[, ] = "项目名称:" + myData.Tables[].Rows[][“columnName”].ToString();
//合并单元格
sheet.get_Range(sheet.Cells[, ], sheet.Cells[, ]).MergeCells = true;
sheet.get_Range(sheet.Cells[, ], sheet.Cells[, ]).MergeCells = true;
//居中对齐
sheet.get_Range(sheet.Cells[, ], sheet.Cells[, ]).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
//设置字体
sheet.get_Range(sheet.Cells[, ], sheet.Cells[, ]).Font.Size = ;
sheet.get_Range(sheet.Cells[, ], sheet.Cells[, ]).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignLeft;
// 设置字体和大小
//range = sheet.get_Range(sheet.Cells[1, 1], sheet.Cells[rowCount, columnCount]);
//range.Font.Name = “Arial”;
//range.Font.Size = 10; // 设置单元格的wrap text属性
sheet.get_Range(sheet.Cells[, ], sheet.Cells[intDataCount + , ]).WrapText = true;
// 设置单元格的数据格式为文本格式
sheet.get_Range(sheet.Cells[, ], sheet.Cells[intDataCount + , ]).NumberFormat = "@";
//设置自动调整列宽
sheet.get_Range(sheet.Cells[, ], sheet.Cells[intDataCount + , ]).EntireColumn.AutoFit();
          //sheet.Range[sheet.Cells[1, 1], sheet.Cells[intDataCount + 1, 13]].EntireColumn.ColumnWidth = 20;

          sheet.Range[sheet.Cells[1, 1], sheet.Cells[intDataCount + 1, 13]].WrapText = false;
          sheet.Range[sheet.Cells[1, 1], sheet.Cells[intDataCount + 1, 13]].NumberFormat = "@";
          sheet.Range[sheet.Cells[1, 1], sheet.Cells[intDataCount + 1, 13]].EntireRow.AutoFit();
          sheet.Range[sheet.Cells[1, 1], sheet.Cells[intDataCount + 1, 13]].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;



                Microsoft.Office.Interop.Excel.Range range;
Array arr = Array.CreateInstance(typeof(object), intDataCount + , );
// 不断的调用下面的的函数填充array中的内容
// 行,列均从0开始 arr.SetValue("列名1", , );
arr.SetValue("列名2", , );
arr.SetValue("列名3", , );
arr.SetValue("列名4", , );
arr.SetValue("列名5", , );
arr.SetValue("列名6", , );
int i = ;
foreach (DataRow row in myData.Tables[].Rows)
{
arr.SetValue(row["columnName1"], i, );
arr.SetValue(row["columnName2"], i, );
arr.SetValue(row["columnName3"], i, );
arr.SetValue(row["columnName4"], i, );
arr.SetValue(row["columnName5"], i, );
arr.SetValue(row["columnName6"], i, );
i++;
} // 设置array数据,注意选择的行数和列数要与array行数和列数对应
//sheet.get_Range(sheet.Cells[, ], sheet.Cells[intDataCount + , ]).Value2 = arr;
         sheet.Range[sheet.Cells[1, 1], sheet.Cells[intDataCount + 1, 13]].Value2 = arr;
// 这里给sheet填充内容部分略
// 如果文件已经存在又不想让“是否替换”的提示窗体显示出来,需要先调用File.Delete来删除文件
strFileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx";
strPath = Server.MapPath("~/upload");
workbook.SaveAs(strPath + "\\" + strFileName, missing, missing, missing, missing, missing,
Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, missing, missing,
missing, missing, missing);

          HylExcel.NavigateUrl = string.Format(@"{0}/{1}/{2}", PageBase.UrlBase, PageBase.UploadDir, strFileName);
          HylExcel.Text = string.Format("<span style='color:red;font-weight:bold;'>点这里下载Excel文件{0}</span>", strFileName);


                workbook.Close(false, missing, missing);
app.Quit();
workbook = null;
app = null;
GC.Collect(); //FileInfo fi = new FileInfo(strPath + "\\" + strFileName);//excelFile为文件在服务器上的地址
//HttpResponse contextResponse = HttpContext.Current.Response;
//contextResponse.Clear();
// contextResponse.Buffer = true;
//contextResponse.Charset = "GB2312"; //设置了类型为中文防止乱码的出现
// contextResponse.AppendHeader("Content-Disposition", String.Format("attachment;filename={0}", fi.Name)); //定义输出文件和文件名
///contextResponse.AppendHeader("Content-Length", fi.Length.ToString());
//contextResponse.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
//contextResponse.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 //contextResponse.WriteFile(fi.FullName);
// contextResponse.Flush();
//fi.Delete();
}
catch (Exception ex)
{
if (app != null)
{
app.Quit();
app = null;
GC.Collect();
}
}

C#如何表格型数据导出到Excel?的更多相关文章

  1. html实现类似excel的复杂表格,及导出到excel

    1. excellentexport.js https://github.com/jmaister/excellentexport/tree/2.0.3 2.fiddle example  https ...

  2. 纯JS 将table表格导出到excel

    html <div > <button type="button" onclick="getXlsFromTbl('tableExcel','myDiv ...

  3. asp.net将内容导出到Excel,Table表格数据(html)导出EXCEL

    代码: /// <summary> /// HTML Table表格数据(html)导出EXCEL /// </summary> /// <param name=&quo ...

  4. 将HTML表格导出到EXCEL,兼容Firefox,支持中文

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. 使用JavaScript把页面上的表格导出为Excel文件

    如果在页面上展示了一个数据表格,而用户想把这个表格导出为Excel文件,那么在要求不高的情况下,可以不通过服务器生成表格,而是直接利用JavaScript的Blob和Object URL特性将表格导出 ...

  6. Python实现数据库一键导出为Excel表格

    依赖 Python2711 xlwt MySQLdb 数据库相关 连接 获取字段信息 获取数据 Excel基础 workbook sheet 案例 封装 封装之后 测试结果 总结 数据库数据导出为ex ...

  7. 网站开发进阶(三十一)js如何将html表格导出为excel文件(后记)

    js如何将html表格导出为excel文件(后记) 前言 项目前期做了个导出Excel表格的功能,但是经过测试发现只有在IE上才可以正确实现,在Chrome等浏览器中无法实现导出效果.经过上网搜索,尝 ...

  8. 网站开发进阶(二十五)js如何将html表格导出为excel文件

    js如何将html表格导出为excel文件        赠人玫瑰,手留余香.若您感觉此篇博文对您有用,请花费2秒时间点个赞,您的鼓励是我不断前进的动力,共勉! jsp页面数据导出成excel的方法很 ...

  9. vue将表格导出为excel

    vue将表格导出为excel 一:在项目中需要安装2个依赖项,如下命令: npm install --save file-saver xlsx 二:在vue文件中如下使用即可: <templat ...

随机推荐

  1. maya2013安装失败如何卸载重装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  2. maya2017安装失败如何卸载重装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  3. LeetCode 167.两数之和(C++)

    给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数. 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2. 说明: 返回的下标值 ...

  4. SQLSERVER 自增列,值突然增大1000

    SQLSERVER 自增列,值突然增大1000https://blog.csdn.net/lichxi1002/article/details/40074247  

  5. C# DialogResult的用法

    在程序中,经常会弹出一个对话框来让用户填写一些信息,填写完成后,当用户点击“确定”按钮后,在主窗体中进行其他的处理.比如一个简单的例子,在主窗体中有一个菜单,是“增加用户”,当点击这个菜单之后,我们需 ...

  6. 详解HBase架构原理

    一.什么是HBase           HBase是一个高可靠.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价的PC Server上搭建大规模结构化存储集群.         H ...

  7. AWS的redhat7中安装jdk8

    下载jdk8 wget https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/ ...

  8. 【干货】Html与CSS入门学习笔记9-11

    九.盒模型 与元素亲密接触 1.盒模型 css将每个元素都看做一个盒子,包括以下属性: 内容区content area:包含内容,内容可以决定大小,也可以自行设定宽度和高度.元素的width属性指定的 ...

  9. Elmah 数据库脚本

    /* 错误管理工具 SQL代码 */ CREATE TABLE dbo.ELMAH_Error ( ErrorId UNIQUEIDENTIFIER NOT NULL, Application NVA ...

  10. ASP.NET MVC 音乐商店 - 4. 数据访问

    上一次,我们使用了模拟的数据从控制器发送到视图模板.现在,我们开始使用真正的数据库,在这个教程中,我们将指导如何使用 SQL Server Compact 版的数据库,它经常被称为 SQL CE, 来 ...