C# 导出Excel的示例(转)
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using System.Reflection; namespace DMS
{
/// <summary>
/// C#操作Excel类
/// </summary>
class ExcelOperate
{
//法一
//public bool DataSetToExcel(DataSet dataSet, bool isShowExcle)
//{
// DataTable dataTable = dataSet.Tables[0];
// int rowNumber = dataTable.Rows.Count;
// int columnNumber = dataTable.Columns.Count; // if (rowNumber == 0)
// {
// MessageBox.Show("没有任何数据可以导入到Excel文件!");
// return false;
// } // //建立Excel对象
// Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
// excel.Application.Workbooks.Add(true);
// excel.Visible = isShowExcle;//是否打开该Excel文件 // //填充数据
// for (int c = 0; c < rowNumber; c++)
// {
// for (int j = 0; j < columnNumber; j++)
// {
// excel.Cells[c + 1, j + 1] = dataTable.Rows[c].ItemArray[j];
// }
// } // return true;
//} //法二
//public bool DataSetToExcel(DataSet dataSet, bool isShowExcle)
//{
// DataTable dataTable = dataSet.Tables[0];
// int rowNumber = dataTable.Rows.Count; // int rowIndex = 1;
// int colIndex = 0; // if (rowNumber == 0)
// {
// return false;
// } // //建立Excel对象
// Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
// excel.Application.Workbooks.Add(true);
// excel.Visible = isShowExcle; // //生成字段名称
// foreach (DataColumn col in dataTable.Columns)
// {
// colIndex++;
// excel.Cells[1, colIndex] = col.ColumnName;
// } // //填充数据
// foreach (DataRow row in dataTable.Rows)
// {
// rowIndex++;
// colIndex = 0;
// foreach (DataColumn col in dataTable.Columns)
// {
// colIndex++;
// excel.Cells[rowIndex, colIndex] = row[col.ColumnName];
// }
// } // return true;
//} //法三(速度最快)
/// <summary>
/// 将数据集中的数据导出到EXCEL文件
/// </summary>
/// <param name="dataSet">输入数据集</param>
/// <param name="isShowExcle">是否显示该EXCEL文件</param>
/// <returns></returns>
public bool DataSetToExcel(DataSet dataSet, bool isShowExcle)
{
DataTable dataTable = dataSet.Tables[];
int rowNumber = dataTable.Rows.Count;//不包括字段名
int columnNumber = dataTable.Columns.Count;
int colIndex = ; if (rowNumber == )
{
return false;
} //建立Excel对象
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
//excel.Application.Workbooks.Add(true);
Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[];
excel.Visible = isShowExcle;
//Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)excel.Worksheets[1];
Microsoft.Office.Interop.Excel.Range range; //生成字段名称
foreach (DataColumn col in dataTable.Columns)
{
colIndex++;
excel.Cells[, colIndex] = col.ColumnName;
} object[,] objData = new object[rowNumber, columnNumber]; for (int r = ; r < rowNumber; r++)
{
for (int c = ; c < columnNumber; c++)
{
objData[r, c] = dataTable.Rows[r][c];
}
//Application.DoEvents();
} // 写入Excel
range = worksheet.get_Range(excel.Cells[, ], excel.Cells[rowNumber + , columnNumber]);
//range.NumberFormat = "@";//设置单元格为文本格式
range.Value2 = objData;
worksheet.get_Range(excel.Cells[, ], excel.Cells[rowNumber + , ]).NumberFormat = "yyyy-m-d h:mm"; return true;
} //法四
//public bool DataSetToExcel(DataSet dataSet, bool isShowExcle)
//{
// DataTable dataTable = dataSet.Tables[0];
// int rowNumber = dataTable.Rows.Count;
// int columnNumber = dataTable.Columns.Count;
// String stringBuffer = ""; // if (rowNumber == 0)
// {
// MessageBox.Show("没有任何数据可以导入到Excel文件!");
// return false;
// } // //建立Excel对象
// Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
// excel.Application.Workbooks.Add(true);
// excel.Visible = isShowExcle;//是否打开该Excel文件 // //填充数据
// for (int i = 0; i < rowNumber; i++)
// {
// for (int j = 0; j < columnNumber; j++)
// {
// stringBuffer += dataTable.Rows[i].ItemArray[j].ToString();
// if (j < columnNumber - 1)
// {
// stringBuffer += "\t";
// }
// }
// stringBuffer += "\n";
// }
// Clipboard.Clear();
// Clipboard.SetDataObject(stringBuffer);
// ((Microsoft.Office.Interop.Excel.Range)excel.Cells[1, 1]).Select();
// ((Microsoft.Office.Interop.Excel.Worksheet)excel.ActiveWorkbook.ActiveSheet).Paste(Missing.Value, Missing.Value);
// Clipboard.Clear(); // return true;
//} //public bool DataSetToExcel(DataSet dataSet, string fileName, bool isShowExcle)
//{
// DataTable dataTable = dataSet.Tables[0];
// int rowNumber = dataTable.Rows.Count;
// int columnNumber = dataTable.Columns.Count; // if (rowNumber == 0)
// {
// MessageBox.Show("没有任何数据可以导入到Excel文件!");
// return false;
// } // //建立Excel对象
// Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
// Microsoft.Office.Interop.Excel.Workbook workBook = excel.Application.Workbooks.Add(true);
// excel.Visible = false;//是否打开该Excel文件 // //填充数据
// for (int i = 0; i < rowNumber; i++)
// {
// for (int j = 0; j < columnNumber; j++)
// {
// excel.Cells[i + 1, j + 1] = dataTable.Rows[i].ItemArray[j];
// }
// } // //string fileName = path + "\\" + DateTime.Now.ToString().Replace(':', '_') + ".xls";
// workBook.SaveAs(fileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); // try
// {
// workBook.Saved = true;
// excel.UserControl = false;
// //excelapp.Quit();
// }
// catch (Exception exception)
// {
// MessageBox.Show(exception.Message);
// }
// finally
// {
// workBook.Close(Microsoft.Office.Interop.Excel.XlSaveAction.xlSaveChanges, Missing.Value, Missing.Value);
// excel.Quit();
// } // if (isShowExcle)
// {
// System.Diagnostics.Process.Start(fileName);
// }
// return true;
//} //public bool DataSetToExcel(DataSet dataSet, string fileName, bool isShowExcle)
//{
// DataTable dataTable = dataSet.Tables[0];
// int rowNumber = dataTable.Rows.Count;//不包括字段名
// int columnNumber = dataTable.Columns.Count;
// int colIndex = 0; // if (rowNumber == 0)
// {
// MessageBox.Show("没有任何数据可以导入到Excel文件!");
// return false;
// } // //建立Excel对象
// Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
// //excel.Application.Workbooks.Add(true);
// Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
// Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];
// excel.Visible = isShowExcle;
// //Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)excel.Worksheets[1];
// worksheet.Name = "挠度数据";
// Microsoft.Office.Interop.Excel.Range range; // //生成字段名称
// foreach (DataColumn col in dataTable.Columns)
// {
// colIndex++;
// excel.Cells[1, colIndex] = col.ColumnName;
// } // object[,] objData = new object[rowNumber, columnNumber]; // for (int r = 0; r < rowNumber; r++)
// {
// for (int c = 0; c < columnNumber; c++)
// {
// objData[r, c] = dataTable.Rows[r][c];
// }
// //Application.DoEvents();
// } // // 写入Excel
// range = worksheet.get_Range(excel.Cells[2, 1], excel.Cells[rowNumber + 1, columnNumber]);
// //range.NumberFormat = "@";//设置单元格为文本格式
// range.Value2 = objData;
// worksheet.get_Range(excel.Cells[2, 1], excel.Cells[rowNumber + 1, 1]).NumberFormat = "yyyy-m-d h:mm"; // //string fileName = path + "\\" + DateTime.Now.ToString().Replace(':', '_') + ".xls";
// workbook.SaveAs(fileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); // try
// {
// workbook.Saved = true;
// excel.UserControl = false;
// //excelapp.Quit();
// }
// catch (Exception exception)
// {
// MessageBox.Show(exception.Message);
// }
// finally
// {
// workbook.Close(Microsoft.Office.Interop.Excel.XlSaveAction.xlSaveChanges, Missing.Value, Missing.Value);
// excel.Quit();
// } // //if (isShowExcle)
// //{
// // System.Diagnostics.Process.Start(fileName);
// //}
// return true;
//} /// <summary>
/// 将数据集中的数据保存到EXCEL文件
/// </summary>
/// <param name="dataSet">输入数据集</param>
/// <param name="fileName">保存EXCEL文件的绝对路径名</param>
/// <param name="isShowExcle">是否打开EXCEL文件</param>
/// <returns></returns>
public bool DataSetToExcel(DataSet dataSet, string fileName, bool isShowExcle)
{
DataTable dataTable = dataSet.Tables[];
int rowNumber = dataTable.Rows.Count;//不包括字段名
int columnNumber = dataTable.Columns.Count;
int colIndex = ; if (rowNumber == )
{
MessageBox.Show("没有任何数据可以导入到Excel文件!");
return false;
} //建立Excel对象
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
//excel.Application.Workbooks.Add(true);
Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[];
excel.Visible = false;
//Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)excel.Worksheets[1];
Microsoft.Office.Interop.Excel.Range range; //生成字段名称
foreach (DataColumn col in dataTable.Columns)
{
colIndex++;
excel.Cells[, colIndex] = col.ColumnName;
} object[,] objData = new object[rowNumber, columnNumber]; for (int r = ; r < rowNumber; r++)
{
for (int c = ; c < columnNumber; c++)
{
objData[r, c] = dataTable.Rows[r][c];
}
//Application.DoEvents();
} // 写入Excel
range = worksheet.get_Range(excel.Cells[, ], excel.Cells[rowNumber + , columnNumber]);
//range.NumberFormat = "@";//设置单元格为文本格式
range.Value2 = objData;
worksheet.get_Range(excel.Cells[, ], excel.Cells[rowNumber + , ]).NumberFormat = "yyyy-m-d h:mm"; //string fileName = path + "\\" + DateTime.Now.ToString().Replace(':', '_') + ".xls";
workbook.SaveAs(fileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); try
{
workbook.Saved = true;
excel.UserControl = false;
//excelapp.Quit();
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}
finally
{
workbook.Close(Microsoft.Office.Interop.Excel.XlSaveAction.xlSaveChanges, Missing.Value, Missing.Value);
excel.Quit();
} if (isShowExcle)
{
System.Diagnostics.Process.Start(fileName);
}
return true;
}
}
}
C# 导出Excel的示例(转)的更多相关文章
- Java利用POI实现导入导出Excel表格示例代码
转自:https://www.jb51.net/article/95526.htm 介绍 Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组件组成,其 ...
- C# 导出Excel的示例
Excel知识点. 一.添加引用和命名空间 添加Microsoft.Office.Interop.Excel引用,它的默认路径是C:\Program Files\Microsoft Visual S ...
- Jquery easyui datagrid 导出Excel
From:http://www.cnblogs.com/weiqt/articles/4022399.html datagrid的扩展方法,用于将当前的数据生成excel需要的内容. 1 <sc ...
- easyui 导出 excel
<div style="margin-bottom:5px" id="tb"> <a href="#" class=&qu ...
- 如何使用JavaScript实现前端导入和导出excel文件
一.SpreadJS 简介 SpreadJS 是一款基于 HTML5 的纯 JavaScript 电子表格和网格功能控件,以“高速低耗.纯前端.零依赖”为产品特色,可嵌入任何操作系统,同时满足 .NE ...
- 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续2篇-模板导出综合示例)
自ExcelUtility类推出以来,经过项目中的实际使用与不断完善,现在又做了许多的优化并增加了许多的功能,本篇不再讲述原理,直接贴出示例代码以及相关的模板.结果图,以便大家快速掌握,另外这些示例说 ...
- NPOI导出Excel示例
摘要:使用开源程序NPOI导出Excel示例.NPOI首页地址:http://npoi.codeplex.com/,NPOI示例博客:http://tonyqus.sinaapp.com/. 示例编写 ...
- SpringBoot使用Easypoi导出excel示例
SpringBoot使用Easypoi导出excel示例 https://blog.csdn.net/justry_deng/article/details/84842111
- asp.net导出excel示例代码
asp.net导出excel的简单方法. excel的操作,最常用的就是导出和导入. 本例使用NPOI实现. 代码:/// <summary> ); ; ...
随机推荐
- 15. leetcode 349. Intersection of Two Arrays
Given two arrays, write a function to compute their intersection. Example: Given nums1 = [1, 2, 2, 1 ...
- 找不到包含 OwinStartupAttribute 的程序集。 - 找不到包含 Startup 或 [AssemblyName].Startup 类的程序集。
打开web.config添加 <add key="owin:appStartup" value="false" /> <add key=&qu ...
- Git异常情况汇总
本篇博客总结下Git使用情况中遇到的异常情况并给出解决方案,关于Git的常用命令请移步我的另一篇博客<Git常用命令> 异常情况如下: 1.git远程删除分支后,本地git branch ...
- java ArrayList 踩坑记录
做编程的一个常识:不要在循环过程中删除元素本身(至少是我个人的原则).否则将发生不可预料的问题. 而最近,看到一个以前的同学写的一段代码就是在循环过程中删除元素,我很是纳闷啊.然后后来决定给他改掉.然 ...
- angular基础
=>是es6语法中的arrow function 举例: (x) => x + 6 相当于 function(x){ return x + 6; } >>> 是无符号移位 ...
- ESLint入门
ESLint是一个用于识别和报告ECMAScript/JavaScript中代码格式的工具,目的是使代码风格更加统一和避免错误. 1.安装和使用有两种方式去安装ESLint:全局和本地. 1.1本地安 ...
- android学习笔记WebView的基本使用
WebView可以看做是一个浏览器,它使用了WebKit渲染引擎加载显示网页. WebView的使用需要掌握下面几点, 1,首先需要开启应用网络访问权限 在AndroidMinafest.xml中添加 ...
- DATAGUARD常用管理命令
--DATAGUARD常用管理命令 ----------------------------2014/04/22 备用服务器的管理模式与只读模式 1.1备库启动到管理恢复模式 SQL>shutd ...
- while补充,字符串和数字的内置方法
一.while循环的补充 while True: name=input('please input your name: ') password=input('please input your pa ...
- 关于HTML应用中的实操细节
在编写HTML程序时,初阶段在打编码时容易忽视语法方面的问题,如大小写,中英文切换标点等.正常在编码时出现语法问题自己很难发现,所以刚开始练习特别要注重语法方面的规范,另外在编码时要有规范的书写方式, ...