博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DataTable 导到Excel
阅读量:5107 次
发布时间:2019-06-13

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

/// <summary>
/// 将DataTalbe导出到Excel中
/// </summary>
/// <param name="dt"></param>
/// <param name="ProjectName">生成的Excel的Sheet的名字</param>
/// <param name="filePath">保存的路径</param>
public 
static 
void 
Export(System.Data.DataTable dt,
string 
filePath)
{
    
if 
(dt ==
null
)
    
{
        
throw 
new 
Exception(
"数据表中无数据"
);
    
}
    
int 
eRowIndex = 1;
    
int 
eColIndex = 1;
    
int 
cols = dt.Columns.Count;
    
int 
rows = dt.Rows.Count;
    
Microsoft.Office.Interop.Excel.Application xlApp =
new 
Microsoft.Office.Interop.Excel.ApplicationClass();
    
Microsoft.Office.Interop.Excel.Workbook xlBook = xlApp.Workbooks.Add(
true
);
    
try
    
{
        
//列名的处理
        
for 
(
int 
i = 0; i < cols; i++)
        
{
            
xlApp.Cells[eRowIndex, eColIndex] = dt.Columns[i].ColumnName;
            
eColIndex++;
        
}
        
//列名加粗显示
        
xlApp.get_Range(xlApp.Cells[eRowIndex, 1], xlApp.Cells[eRowIndex, cols]).Font.Bold =
true
;
        
xlApp.get_Range(xlApp.Cells[eRowIndex, 1], xlApp.Cells[rows + 1, cols]).Font.Name =
"Arial"
;
        
xlApp.get_Range(xlApp.Cells[eRowIndex, 1], xlApp.Cells[rows + 1, cols]).Font.Size =
"10"
;
        
eRowIndex++;
 
        
for 
(
int 
i = 0; i < rows; i++)
        
{
            
eColIndex = 1;
            
for 
(
int 
j = 0; j < cols; j++)
            
{
                
xlApp.Cells[eRowIndex, eColIndex] = dt.Rows[i][j].ToString();
                
eColIndex++;
            
}
            
eRowIndex++;
        
}
        
//控制单元格中的内容。
        
xlApp.Cells.EntireColumn.AutoFit();
 
        
xlApp.DisplayAlerts =
false
;
        
xlBook.SaveCopyAs(filePath);
        
xlApp.Workbooks.Close();
    
}
    
catch
    
{
        
throw
;
    
}
    
finally
    
{
        
xlApp.Quit();
        
//杀掉Excel进程。
        
GC.Collect();
    
}
}

 注意:using Microsoft.Office.Interop.Excel;  VS2010 下 添加引用  COM选项中找Microsoft Office 12.0 Object Library  Microsoft Excel 14.0 Object Library

引用目录下出现Microsoft.Office.Core     Microsoft.Office.Interop.Excel

如果代码中出现  Excel.ApplicationClass()无法互嵌套操作类型 请改用适用的接口 

把引用的Microsoft.Office.Interop.Excel 右击属性 嵌入互操作类型改为false即可

转载于:https://www.cnblogs.com/flyrain/p/Excel.html

你可能感兴趣的文章
C#综合揭秘——细说多线程(下)
查看>>
c#运算符 ?
查看>>
Silverlight学习笔记(九)-----RenderTransform特效【五种基本变换】及【矩阵变换MatrixTransform】...
查看>>
【题解】青蛙的约会
查看>>
求给定字符串的最长子字符串
查看>>
.26-浅析webpack源码之事件流make(1)
查看>>
IO流
查看>>
mybatis调用存储过程,获取返回的游标
查看>>
设计模式之装饰模式(结构型)
查看>>
面向对象的设计原则
查看>>
Swift3.0服务端开发(三) Mustache页面模板与日志记录
查看>>
【转】 FPGA设计的四种常用思想与技巧
查看>>
移动端页面头部定义
查看>>
C++:同名隐藏和赋值兼容规则
查看>>
EntityFrameWork 实现实体类和DBContext分离在不同类库
查看>>
Microsoft .NET 远程处理:技术概述(代理模式)
查看>>
新手算法学习之路----二叉树(在一个二叉查找树中插入一个节点)
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
java 类型转型
查看>>