C# DataSet数据导入Excel 修正版- .net FrameWork 4.0以上

 引入  Microsoft.Office.Interop.Excel.dll 格式:标题加了下划线,单元格内容居中 1 using System;
 2 using System.Data;
 3 using System.Data.SqlClient;
 4 using System.Web.UI;
 5
 6      public static void DataSetToExcel(DataTable dataTable, string SaveFile)
 7             {
 8                 Microsoft.Office.Interop.Excel.Application excel;
 9
10                 Microsoft.Office.Interop.Excel._Workbook workBook;
11
12                 Microsoft.Office.Interop.Excel._Worksheet workSheet;
13
14                 object misValue = System.Reflection.Missing.Value;
15
16                 excel = new Microsoft.Office.Interop.Excel.Application();
17
18                 workBook = excel.Workbooks.Add(misValue);
19
20                 workSheet = (Microsoft.Office.Interop.Excel._Worksheet)workBook.ActiveSheet;
21
22                 int rowIndex = 1;
23
24                 int colIndex = 0;
25
26                 //取得标题
27                 foreach (DataColumn col in dataTable.Columns)
28                 {
29                     colIndex++;
30
31                     excel.Cells[1, colIndex] = col.ColumnName;
32                     Microsoft.Office.Interop.Excel.Range range = workSheet.Range[workSheet.Cells[1, colIndex],workSheet.Cells[1,colIndex]];
33                     range.Font.Underline = true;
34                 }
35
36                 //取得表格中的数据
37                 foreach (DataRow row in dataTable.Rows)
38                 {
39                     rowIndex++;
40
41                     colIndex = 0;
42
43                     foreach (DataColumn col in dataTable.Columns)
44                     {
45                        colIndex++;
46
47                        excel.Cells[rowIndex, colIndex] =
48
49                             row[col.ColumnName].ToString().Trim();
50
51                        Microsoft.Office.Interop.Excel.Range range = workSheet.Range[excel.Cells[rowIndex, colIndex], excel.Cells[rowIndex, colIndex]];
52                        range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;
53                     }
54                 }
55
56                 excel.Visible = false;
57                 excel.DisplayAlerts = false;
58
59                 if (workSheet != null)
60                 {
61                     workBook.SaveAs(SaveFile, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, misValue,
62
63                         misValue, misValue, misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,
64
65                         misValue, misValue, misValue, misValue, misValue);
66                 }
67
68
69                 dataTable = null;
70
71                 workBook.Close(true, misValue, misValue);
72
73                 excel.Quit();
74
75
76                 releaseObject(workSheet);
77
78                 releaseObject(workBook);
79
80                 releaseObject(excel);
81
82             }
83
84             private static void releaseObject(object obj)
85             {
86                 try
87                 {
88                     System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
89                     obj = null;
90                 }
91                 catch
92                 {
93                     obj = null;
94                 }
95                 finally
96                 {
97                     GC.Collect();
98                 }
99             }

Call funxction example:

  DataSetToExcel(ds.Tables[0], @"D:\ZhaoNick\Desktop\test.xls");

这次需要做一个windowServices,主要的功能就是从local db提取数据存入ftp excel file中,在提取数据成功后存入dataset中,在导入到excel时要给标题加下划线和内容设置居中时,发现报了“Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: “object”未包含“get_Range”的定义”这么一段错误,后来才发现是.net版本问题或者说是写法有问题。。不过最后还是解决了这个坑。

时间: 2024-10-29 19:08:46

C# DataSet数据导入Excel 修正版- .net FrameWork 4.0以上的相关文章

C#将SQL数据库中数据导入Excel中,并将Excel中反导入SQL数据库中

实际的开发中,我们会经常遇到数据的转化的需要,将Excel中的数据转入到SQL中,或将SQL在数据库表中的数据导入到Excel中.代码如下: Code using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windo

C#变成数据导入Excel和导出Excel

excel 基础 •整个excel 表格叫工作表:workbook:工作表包含的叫页:sheet:行:row:单元格:cell. •excel 中的电话号码问题,看起来像数字的字符串以半角单引号开头就没问题了. •使用区域(usedrange):用excel 表的时候不一定是从最左上角的单元格开始用,为了减小文件尺寸,有使用区域的概念,excel 只存储使用区域. 程序处理excel 的技术 •ole automation:程序启动一个excel 进程,然后和excel 进程进行通讯来进行exc

通过模板将数据导入EXCEL

在EXCEL模板里设置好样式和格式 点击事件 private void btnReport_Click(object sender, EventArgs e)        {            //将数据导入Excel中并设置Excel基本样式            ExcelHandle excelHandle = new ExcelHandle();            excelHandle.GenerateStudentsReports(this.dgvStudents);   

如何将页面上的数据导入excel中

网上关于页面数据导入excel的文章很多,但是大部分都是关于 ActiveXObject 对象,可是ActiveXObject 对象是只支持IE的,可我连IE11也测试了,还是无法识别,又查到消息,好像该对象只支持IE7,IE8,所以果断放弃. 继续查找各大论坛,终于找到JsExcelXml的插件, <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></

[Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!

引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目.使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写.NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作

C#Winfrom Listview数据导入Excel

需引用 public void ExportToExecl() { System.Windows.Forms.SaveFileDialog sfd = new SaveFileDialog(); sfd.DefaultExt = "xls"; sfd.Filter = "Excel文件(*.xls)|*.xls"; if (sfd.ShowDialog() == DialogResult.OK) { DoExport(this.listView1, sfd.File

Java将数据库数据导入EXCEL

一般的数据库数据怎么导入excel中呢??这让人非常疑惑,今天我找到了一个方法能够实现 须要导入一个第三方包下载地址 详细内容例如以下: 里面含有指导文档,index.html里面含有怎样读取数据库文件到excel和excel数据到数据库中. 主要用到一个包 将这个包复制到项目里面就能够了. 先做一个简单版本号的helloword <span style="white-space:pre"> </span>public void mkexcel() throws

excel数据 入库mysql 和 mysql数据 导入excel文件

1.excel数据入库mysql 首先准备excel文件, 标红的地方需要留意,一个是字段名所在行,一个表名对应页: 然后私用mysql工具 navicat, 选择数据库,然后导入文件, 选中相应execl文件,即可导入. 栏位名行  对应excel文件中,字段名所在的行. 第一个数据行  对应excel文件中,第一行数据所在的行. ----------------------------------------------------------------------------------

java数据库数据导入excel

data导出入excel中 controller: package com.longfor.hrssc.api.controller; import com.longfor.hrssc.api.model.BasicInformation; import com.longfor.hrssc.api.service.IBasicInformationService; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.u