/// <summary>
/// 导出Excel
/// </summary>
private void ExportExcel(DataTable ExcelDt)
{
//导出表格
HSSFWorkbook workBook = new HSSFWorkbook();
ISheet sheet1 = workBook.CreateSheet("表名");
//表头
IRow headerRow = sheet1.CreateRow(0);
foreach (DataColumn column in ExcelDt.Columns)
{
headerRow.CreateCell(column.Ordinal).SetCellValue(column.ColumnName);
}
int rowIndex = 1;
foreach (DataRow dr in ExcelDt.Rows)
{
IRow dataRow = sheet1.CreateRow(rowIndex++);
foreach (DataColumn column in ExcelDt.Columns)
{
dataRow.CreateCell(column.Ordinal).SetCellValue(dr[column.ColumnName].ToString());
}
}
SaveFileDialog sfd = new SaveFileDialog();
sfd.DefaultExt = ".xls";
sfd.Filter = "(*.xls)|*.xls";
if (sfd.ShowDialog() == true)
{
try
{
FileStream file = new FileStream(sfd.FileName, FileMode.Create);
workBook.Write(file);
file.Dispose();
MessageDialog.Show("导出成功!", "提示");
}
catch (Exception)
{
MessageDialog.Show("该文件正在被其他进程占用,导出失败!", "提示");
}
}
}

  使用NPOI.dll ,上述代码是使用DLL 1.2.4.0,可能使用的DLL不同,代码略有不同。比如,有的版本的NPOI.dll 的是使用的是Sheet而非ISheet。

2.导出图片

        /// <summary>
/// 图片转化为bitmap
/// </summary>
/// <param name="chartTemp"></param>
/// <returns></returns>
private Bitmap GetControlMap(Control ctrl)
{
System.Windows.Point point = ctrl.PointToScreen(new System.Windows.Point(0, 0));
System.Drawing.Bitmap bitmap = new Bitmap((int)ctrl.Width, (int)ctrl.Height);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
System.Drawing.Size size = new System.Drawing.Size((int)ctrl.Width, (int)ctrl.Height);
g.CopyFromScreen((int)point.X, (int)point.Y, 0, 0, size);
return bitmap;
}

  

        /// <summary>
/// 导出图片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnToImage_Click(object sender, RoutedEventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.DefaultExt = ".jpg";
sfd.Filter = "(*.jpg)|*.jpg";
if (sfd.ShowDialog() == true)
{
Bitmap bitmap = GetControlMap(humiCloud);
bitmap.Save(sfd.FileName);
MessageDialog.Show("导出成功!", "提示");
}
}

  

												

WPF 导出Excel 导出图片的更多相关文章

  1. PHP导入导出excel表格图片(转)

    写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了.呵呵.(COM方式不讲了,这种可读的太多了,我也写过利用wp ...

  2. PHP导入导出excel表格图片的代码和方法大全

    基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已.修改这种文件后再保存,通常会提示你是否要转换成Excel文件 ...

  3. 【SSM 】导出excel含图片

    ExprotRentUtils package com.kikyo.stat.utils; import java.awt.image.BufferedImage; import java.io.By ...

  4. yii2 数据导出 excel导出以及导出数据时列超过26列时解决办法

    作者:白狼 出处:http://www.manks.top/article/yii2_excel_extension​ 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给 ...

  5. NPOI 导出excel带图片,可控大小

    using NPOI.HSSF.UserModel;using NPOI.HSSF.Util;using NPOI.DDF;using NPOI.SS.UserModel;using System.I ...

  6. asp.net 导出excel带图片

    protected void btgua_Click(object sender, EventArgs e) { DataTable dt = ds.Tables[0]; if (dt != null ...

  7. npoi导出excel 导出List<T>

    using System.Collections.Generic; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSS ...

  8. Birt导出Excel图片

    有一段时间没有使用Birt了,最近突然之间发现新版的Birt可以支持导出Excel附带图片.我目前下载的是Birt 4.3版本的,导出图片的也只能在Excel 2007下面能够实现,2003的xls格 ...

  9. thinkphp3.2.3 excel导出,下载文件,包含图片

    关于导出后出错的问题 https://segmentfault.com/q/1010000005330214 https://blog.csdn.net/ohmygirl/article/detail ...

随机推荐

  1. 解析Spring第一天

    目的:了解spring框架中的注解 前言:同样是使用idea创建一个普通的maven工程(如何创建一个普通的Maven工程可以参考mybatis入门第一天的详解). 项目结构: 代码编辑: 在项目中引 ...

  2. thinkphp 变量输出

    在模板中输出变量的方法很简单,例如,在控制器中我们给模板变量赋值: 大理石平台支架 $name = 'ThinkPHP'; $this->assign('name',$name); $this- ...

  3. thinkphp 系统流程

    用户URL请求 调用应用入口文件(通常是网站的index.php) 载入框架入口文件(ThinkPHP.php) 记录初始运行时间和内存开销 系统常量判断及定义 载入框架引导类(Think\Think ...

  4. 组合数学——cf991E

    /* 如果有某一位,那么这一位必须存在 枚举所有情况,计算每种情况时0额外另算 */ #include<bits/stdc++.h> using namespace std; #defin ...

  5. MySQL 笔记一

    一.基本语法 1.数据库操作 create database [IF NOT EXIEST ] 数据库名   --创建数据库 drop database  数据库名                   ...

  6. 没有找到mfc100.dll

    转自VC错误:http://www.vcerror.com/?p=86 问题描述: 生成的exe文件在编译的时候会提示"没有找到mfc100.dll",这个时候需要更改配置为静态编 ...

  7. 同步异步,异步回调,线程队列,线程时间Event

    同步异步-阻塞非阻塞 阻塞-非阻塞 指的是程序的运行状态 阻塞:当程序执行过程中遇到了IO操作,在执行IO操作时,程序无法继续执行其他代码,称为阻塞. 非阻塞:程序在正常运行没有遇到IO操作,或者通过 ...

  8. Laravel依赖

    首先有个接口 interface Visit { public function go (); } 然后有三个类Leg,Car,Train class Leg implements Visit { p ...

  9. 夏令营501-511NOIP训练18——高三楼

    传送门:QAQQAQ 题意:定义矩阵A与矩阵B重复,当且仅当A可以通过任意次行列交换得到B,例如下图A,B即为合法矩阵 现求对于$n*n$的矩阵有多少个不重复的矩阵 数据范围: 对于10%的数据 N≤ ...

  10. Django之13种必会查询

    1.常见的13中查询方式(必须记住) <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> g ...