博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# DataSet数据导入Excel 修正版- .net FrameWork 4.0以上
阅读量:5839 次
发布时间:2019-06-18

本文共 3794 字,大约阅读时间需要 12 分钟。

引入  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版本问题或者说是写法有问题。。不过最后还是解决了这个坑。

转载于:https://www.cnblogs.com/kejie/p/7230222.html

你可能感兴趣的文章
Python天天美味(8) - 字符串中的字符倒转
查看>>
点在多边形内算法,C#判断一个点是否在一个复杂多边形的内部
查看>>
SAP HANA中创建与时间相关的数据及Time Attribute View(Gregorian)
查看>>
Python对列表中字典元素排序
查看>>
如何在移动设备上搭建服务器承载自己的全景作品?
查看>>
iOS SQLite3数据库操作
查看>>
12.4. Tomcat
查看>>
除了 iOS 和 Android,世界第三大移动系统是什么?
查看>>
35.7. FAQ
查看>>
winfrom GDI知识
查看>>
【故障-ORACLE】rdbms ipc message timeout解释
查看>>
System.Threading.Tasks.Task 任务引起的IIS应用程序池崩溃
查看>>
解剖SQLSERVER 第十二篇 OrcaMDF 行压缩支持(译)
查看>>
深搜算法实例:老鼠走迷宫(一)
查看>>
VMWare网络设置的3中方式(转)
查看>>
支付这条线上 谁在赚钱谁在哭?
查看>>
机器学习之朴素贝叶斯分类
查看>>
亚信安全参加第六届全国等保技术大会 态势感知助力“等保2.0”落地
查看>>
【设计模式系列】--抽象工厂
查看>>
JqueryValidate 动态添加验证
查看>>