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的示例(转)的更多相关文章

  1. Java利用POI实现导入导出Excel表格示例代码

    转自:https://www.jb51.net/article/95526.htm 介绍 Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组件组成,其 ...

  2. C# 导出Excel的示例

    Excel知识点.  一.添加引用和命名空间 添加Microsoft.Office.Interop.Excel引用,它的默认路径是C:\Program Files\Microsoft Visual S ...

  3. Jquery easyui datagrid 导出Excel

    From:http://www.cnblogs.com/weiqt/articles/4022399.html datagrid的扩展方法,用于将当前的数据生成excel需要的内容. 1 <sc ...

  4. easyui 导出 excel

    <div style="margin-bottom:5px" id="tb"> <a href="#" class=&qu ...

  5. 如何使用JavaScript实现前端导入和导出excel文件

    一.SpreadJS 简介 SpreadJS 是一款基于 HTML5 的纯 JavaScript 电子表格和网格功能控件,以“高速低耗.纯前端.零依赖”为产品特色,可嵌入任何操作系统,同时满足 .NE ...

  6. 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续2篇-模板导出综合示例)

    自ExcelUtility类推出以来,经过项目中的实际使用与不断完善,现在又做了许多的优化并增加了许多的功能,本篇不再讲述原理,直接贴出示例代码以及相关的模板.结果图,以便大家快速掌握,另外这些示例说 ...

  7. NPOI导出Excel示例

    摘要:使用开源程序NPOI导出Excel示例.NPOI首页地址:http://npoi.codeplex.com/,NPOI示例博客:http://tonyqus.sinaapp.com/. 示例编写 ...

  8. SpringBoot使用Easypoi导出excel示例

    SpringBoot使用Easypoi导出excel示例 https://blog.csdn.net/justry_deng/article/details/84842111

  9. asp.net导出excel示例代码

    asp.net导出excel的简单方法. excel的操作,最常用的就是导出和导入. 本例使用NPOI实现. 代码:/// <summary> );             ;       ...

随机推荐

  1. 在Navicat 中给Mysql中的某字段添加前缀00

    第一次分享心得,希望大家多多关注. 我遇到的情况是这样的,在Navicat中某表的varchar字段内容长度不够5的在内容前面添加‘0’:如字段内容是 101 我就要改成00101: 其中有2个难点: ...

  2. 贪心:字典树openjudge1799-最短前缀

    描述 一个字符串的前缀是从该字符串的第一个字符起始的一个子串.例如 "carbon"的字串是: "c", "ca", "car&q ...

  3. [BZOJ 3629][ JLOI2014 ]聪明的燕姿

    这道题考试选择打表,完美爆零.. 算数基本定理: 任何一个大于1的自然数N,都可以唯一分解成有限个质数的乘积N=P₁^a₁ P₂^a₂…Pn^an,这里P₁<P₂<…<Pn均为质数, ...

  4. [SCOI2007]压缩 区间dp

    明显是个区间dp,但是我区间dp就是个渣... f[i][j]表示区间i到j最短的字符长度:假设前面加了个M,所以初始化f[i][i]=2;当然最开始是不算M的,所以f[1][1]=1;然后就可以区间 ...

  5. ArrayList 和 LinkedList的执行效率比较

    一.概念: 一般我们都知道ArrayList* 由一个数组后推得到的 List.作为一个常规用途的对象容器使用,用于替换原先的 Vector.允许我们快速访问元素,但在从列表中部插入和删除元素时,速度 ...

  6. Pivot-Header的花式效果

    要实现如上图所示的效果分为三步: 1.重写Pivot样式,去掉Pivot的Header或者是直接使用默认的Pivot的样式然后不写Header 2.使用一个ListView或者是横向的StackPan ...

  7. 我读<代码整洁之道>--读书笔记整理

    第一章 整洁代码 "我可以列出我留意到的整洁代码的所有特点,但其中有一条是根本性的,整洁的代码总是看起来像是某位特别在意他的人写的.几乎没有改进的余地,代码作者设么都想到了,如果你企图改进它 ...

  8. 轻量级ORM框架 QX_Frame.Bantina(二、框架使用方式介绍)

    轻量级ORM框架QX_Frame.Bantina系列讲解(开源) 一.框架简介 http://www.cnblogs.com/qixiaoyizhan/p/7417467.html 二.框架使用方式介 ...

  9. 伪验证码(含随机验证码方法)js+css

    HTML----------------------------------------------<!DOCTYPE html><html><head><m ...

  10. MySQL 服务日志

    翻译自 dev.mysql.com/doc/refman/5.7/en/log-destinations.html 一.选择常规查询日志和慢查询输出日志的目的地 MySQL提供了灵活的控制对常规查询和 ...