c#导出excel(转)
C#导出Excel文件实例代码
2010-08-03 14:10:36| 分类: 软件编程 | 标签:excel c#导出excel |字号大中小 订阅
/// <summary>
/// 导出Excel的方法
/// </summary>
private void ExportExcel()
{
if (this.table == null) return;
bool fileSaved = false;
SaveFileDialog sfdSaveFile = new SaveFileDialog();
sfdSaveFile.DefaultExt = "xls";
sfdSaveFile.Filter = "Excel文件(*.xls)|*.xls";
sfdSaveFile.FileName = string.Empty;
if (sfdSaveFile.ShowDialog() != DialogResult.OK) return;
//电脑Excel程序
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
if (xlApp == null)
{
MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel程序!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
//Workbook集合
Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
//Workbook
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
//WorkSheet
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
//从DataTable中导出Excel
////写入字段列标题
//for (int i = 0; i < this.table.Columns.Count; i++)
//{
// worksheet.Cells[1, i + 1] = this.table.Columns[i].ColumnName;
//}
////写入数值
//for (int r = 0; r < this.table.Rows.Count; r++)
//{
// for (int i = 0; i < this.table.Columns.Count; i++)
// {
// worksheet.Cells[r + 2, i + 1] = this.table.Rows[r][i];
// }
// System.Windows.Forms.Application.DoEvents();
//}
//从DataGridView中导出Excel
//标题
for (int c = 0; c < this.dgvList.Columns.Count; c++)
{
worksheet.Cells[1, c + 1] = this.dgvList.Columns[c].HeaderText;
//设置单元格样式
Microsoft.Office.Interop.Excel.Range range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[1, c + 1];
range.Font.Name = "华文楷体";//字体
range.Font.Bold = true;//是否加粗
range.Font.Italic = false;//是否倾斜
range.Font.Size = 15;//字体大小
//其他样式属性暂不知其中的值,不可用
//range.Font.Background ="#fff000";//背景颜色
//range.Font.Color ="#ff0000";//字颜色
//range.Font.ColorIndex = 3;
//range.Borders.Color = "#00ffee";//边框颜色
}
//单元格内容
for (int rowIndex = 0; rowIndex < this.dgvList.Rows.Count; rowIndex++)
{
for (int columnIndex = 0; columnIndex < this.dgvList.Columns.Count; columnIndex++)
{
worksheet.Cells[rowIndex + 2, columnIndex + 1] = this.dgvList.Rows[rowIndex].Cells[columnIndex].Value.ToString();
}
}
worksheet.Columns.EntireColumn.AutoFit();//列宽自适应。
//对指定列进行格式输出
//Microsoft.Office.Interop.Excel.Range rg = worksheet.get_Range(worksheet.Cells[2, 1], worksheet.Cells[this.table.Rows.Count + 1, 1]);
//rg.NumberFormat = "00000000";
try
{
workbook.Saved = true;
workbook.SaveCopyAs(sfdSaveFile.FileName);//保存复制到指定位置
fileSaved = true;
}
catch (Exception ex)
{
fileSaved = false;
MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);
}
finally
{
workbooks.Close();
xlApp.Quit();
GC.Collect();//强行销毁
}
if (fileSaved && System.IO.File.Exists(sfdSaveFile.FileName))
{
//System.IO.File.Open(sfdSaveFile.FileName, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Read);
System.Diagnostics.Process.Start(sfdSaveFile.FileName); //打开EXCEL
}
}
c#导出excel(转)的更多相关文章
- C#使用Aspose.Cells导出Excel简单实现
首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...
- 利用poi导出Excel
import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.r ...
- [django]数据导出excel升级强化版(很强大!)
不多说了,原理采用xlwt导出excel文件,所谓的强化版指的是实现在网页上选择一定条件导出对应的数据 之前我的博文出过这类文章,但只是实现导出数据,这次左思右想,再加上网上的搜索,终于找出方法实现条 ...
- NPOI导出Excel
using System;using System.Collections.Generic;using System.Linq;using System.Text;#region NPOIusing ...
- ASP.NET Core 导入导出Excel xlsx 文件
ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...
- asp.net DataTable导出Excel 自定义列名
1.添加引用NPOI.dll 2.cs文件头部添加 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using System.IO; 3.代码如 ...
- Aspose.Cells导出Excel(1)
利用Aspose.Cells导出excel 注意的问题 1.DataTable的处理 2.进行编码,便于中文名文件下载 3.别忘了Aspose.Cells.dll(可以自己在网上搜索) public ...
- 前端导出Excel兼容写法
今天整理出在Web前端导出Excel的写法,写了一个工具类,对各个浏览器进行了兼容. 首先,导出的数据来源可能有两种: 1. 页面的HTML内容(一般是table) 2. 纯数据 PS:不同的数据源, ...
- JS导出excel 兼容ie、chrome、firefox
运用js实现将页面中的table导出为excel文件,页面显示如下: 导出的excel文件显示如下: 实现代码: <!DOCTYPE html> <html> <head ...
- Oracle导出excel
oracle导出excel(非csv)的方法有两种,1.使用sqlplus spool,2.使用包体 现将网上相关代码整理后贴出以备不时之需: 使用sqlplus: 使用sqlplus需要两个文件: ...
随机推荐
- How to Programmatically Switch between the HubTile Visual States
In this post I am going to talk about how to programmatically switch between different HubTile Visua ...
- 洛谷 P1009 阶乘之和 Label:高精度
题目描述 用高精度计算出S=1!+2!+3!+…+n!(n≤50) 其中“!”表示阶乘,例如:5!=5*4*3*2*1. 输入输出格式 输入格式: 一个正整数N. 输出格式: 一个正整数S,表示计算结 ...
- 最大权闭合图 && 【BZOJ】1497: [NOI2006]最大获利
http://www.lydsy.com/JudgeOnline/problem.php?id=1497 最大权闭合图详细请看胡伯涛论文<最小割模型在信息学竞赛中的应用>,我在这里截图它的 ...
- POJ 3270 Cow Sorting(置换群)
题目链接 很早之前就看过这题,思路题把,确实挺难想的,黑书248页有讲解. #include <cstdio> #include <cstring> #include < ...
- COJ983 WZJ的数据结构(负十七)
显然是动态树裸题:O(mlogn) #include<cstdio> #include<cstring> #include<algorithm> #include& ...
- 模板引擎freemarker的简单使用教程
freemarker十分强大,而且不依赖web容器,个人感觉十分好用. 下面直接进主题,freemarker还有什么特性,请找度娘或谷哥~ 一.freemarker生成word 1.创建模板. 我创建 ...
- Android--学习记录
最近天天被兔子激励,所以开始找工作,发现Android和iOS都会更有竞争力,所以就想学一下Android Android比iOS更开放,学习难度可能会更大,我已经做好了吃苦的准备 计划是三个月搞定, ...
- #在FLAT模式下,需要设置flat子网,VM的IP从这个设置的子网中抓取,这时flat_injected需要设置为True,系统才能自动获得IP,如果flat
#在FLAT模式下,需要设置flat子网,VM的IP从这个设置的子网中抓取,这时flat_injected需要设置为True,系统才能自动获得IP,如果flat子网和主机网络是同一网络,网络管理员要注 ...
- nova
chen@controller:~$ nova usage: nova [--version] [--debug] [--os-cache] [--timings] [--ti ...
- 【iCore2 双核心板视频教程一】iM_LAN 100M 以太网模块UDP例程(包含视频教程)
============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:h ...