代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C#
】
DataTable数据导入Excel数据
作者:
羽昶
/ 发布于
2016/7/31
/
766
/******************************************************** * 如果引用->添加引用->.net选项卡下有->using Microsoft.Office.Interop.Excel;->直接引入 * 如果没有,请把->Microsoft.Office.Interop.Excel.dll->放到Debug目录下-> * 引用->添加引用->浏览选项卡下有->using Microsoft.Office.Interop.Excel;->直接引入 * 然后再类的上边添加using Microsoft.Office.Interop.Excel; * * * ******************************************************/ using System; using System.Collections.Generic; using System.Text; using Microsoft.Office.Interop.Excel; using System.Windows.Forms; namespace DataGridviewPage { class ExcleHelper { /// <summary> /// /// </summary> /// <param name="dt">需要导出到excel的数据表dt</param> /// <param name="saveFileName">存储文件名</param> /// <returns></returns> public static void DataTableToExcel(System.Data.DataTable dt, string saveFileName) { if (dt == null) return; //-***************获取excel对象*************** // string saveFileName = ""; TimeSpan dateBegin = new TimeSpan(DateTime.Now.Ticks); bool fileSaved = false; SaveFileDialog saveDialog = new SaveFileDialog(); saveDialog.DefaultExt = "xls"; saveDialog.Filter = "Excel文件|*.xls"; saveDialog.FileName = "导入记录查询结果 " + DateTime.Today.ToString("yyyy-MM-dd"); saveDialog.ShowDialog(); saveFileName = saveDialog.FileName; if (saveFileName.IndexOf(":") < 0) return; //被点了取消 Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); if (xlApp == null) { MessageBox.Show("无法启动Excel,可能您未安装Excel"); return; } Microsoft.Office.Interop.Excel.Workbook workbook = xlApp.Workbooks.Add(true); Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1]; Microsoft.Office.Interop.Excel.Range range; // 列索引,行索引,总列数,总行数 int colIndex = 0; int RowIndex = 0; int colCount = dt.Columns.Count; int RowCount = dt.Rows.Count; // *****************获取数据********************* // 创建缓存数据 object[,] objData = new object[RowCount+1, colCount]; // 获取列标题 for (int i = 0; i < dt.Columns.Count; i++) { objData[RowIndex, colIndex++] = dt.Columns[i].Caption; // dgv.Columns[i].HeaderText; } // 获取具体数据 for (RowIndex = 0; RowIndex < RowCount; RowIndex++) { for (colIndex = 0; colIndex < colCount; colIndex++) { objData[RowIndex+1, colIndex] = dt.Rows[RowIndex][colIndex]; } } //*******************设置输出格式****************************** //设置顶部説明 合并的单元格 range = worksheet.get_Range(xlApp.Cells[1, 1], xlApp.Cells[1, colCount]); range.MergeCells = true; range.RowHeight = 38; range.Font.Bold = true; range.Font.Size = 14; range.Font.ColorIndex = 10;//字体颜色 xlApp.ActiveCell.FormulaR1C1 = "导入记录查询结果"; //特殊数字格式 //range = worksheet.get_Range(xlApp.Cells[2, colCount], xlApp.Cells[RowCount, colCount]); xlApp.Cells.HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter; range = worksheet.get_Range(xlApp.Cells[2, 1], xlApp.Cells[2, colCount]); range.Font.Bold = true; range.RowHeight = 20; //********************* 写入Excel******************* range = worksheet.get_Range(xlApp.Cells[2, 1], xlApp.Cells[RowCount+2, colCount]); range.Value2 = objData; System.Windows.Forms.Application.DoEvents(); //***************************保存********************** if (saveFileName != "") { try { workbook.Saved = true; workbook.SaveCopyAs(saveFileName); fileSaved = true; } catch (Exception ex) { fileSaved = false; MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message); } } else { fileSaved = false; } xlApp.Quit(); GC.Collect();//强行销毁 TimeSpan dateEnd = new TimeSpan(DateTime.Now.Ticks); TimeSpan tspan = dateBegin.Subtract(dateEnd).Duration(); MessageBox.Show("导出成功,用时" + tspan.ToString() + "秒"); if (fileSaved && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); //保存成功后打开此文件 } } }
试试其它关键字
同语言下
.
C#实现的html内容截取
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
.
实现对图片上传的接收
.
去除字符串中的空格,回车,换行符转变成‘;’在按‘
.
按照回车换行符分割字符串
.
文件MD5码 比较,检测文件是否一样
可能有用的
.
C#实现的html内容截取
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
.
实现对图片上传的接收
.
去除字符串中的空格,回车,换行符转变成‘;’在按‘
.
按照回车换行符分割字符串
.
文件MD5码 比较,检测文件是否一样
羽昶
贡献的其它代码
(
15
)
.
获取每个月的开始和结束时间
.
崩溃相关
.
servlet跳转jsp页面
.
利用POI抽取PPT中的图片并保存在文件中
.
DataTable数据导入Excel数据
.
ie6实现div在select控件之上
.
使用jQuery来切换样式表
.
快速获取文件MD5值
.
复制文件并计算传输速度
.
腾讯地图与百度地图坐标转换
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3