封装成类,供以后使用(将datagrid导出)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;namespace AstroATE
{class ExportToExcel{public bool Export(DataGrid dataGrid, string excelTitle){System.Data.DataTable dt = new System.Data.DataTable();for (int i = 0; i < dataGrid.Columns.Count; i++){if (dataGrid.Columns[i].Visibility == System.Windows.Visibility.Visible)//只导出可见列  {dt.Columns.Add(dataGrid.Columns[i].Header.ToString());//构建表头  }}for (int i = 0; i < dataGrid.Items.Count; i++){int columnsIndex = 0;System.Data.DataRow row = dt.NewRow();for (int j = 0; j < dataGrid.Columns.Count; j++){if (dataGrid.Columns[j].Visibility == System.Windows.Visibility.Visible){if (dataGrid.Items[i] != null && (dataGrid.Columns[j].GetCellContent(dataGrid.Items[i]) as TextBlock) != null)//填充可见列数据  {row[columnsIndex] = (dataGrid.Columns[j].GetCellContent(dataGrid.Items[i]) as TextBlock).Text.ToString();}else row[columnsIndex] = "";columnsIndex++;}}dt.Rows.Add(row);}if(ExcelExport(dt, excelTitle) != null){return true;}else{return false;}}public string ExcelExport(System.Data.DataTable DT, string title){try{//创建ExcelMicrosoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();Microsoft.Office.Interop.Excel.Workbook ExcelBook = ExcelApp.Workbooks.Add(System.Type.Missing);//创建工作表(即Excel里的子表sheet) 1表示在子表sheet1里进行数据导出Microsoft.Office.Interop.Excel.Worksheet ExcelSheet = (Microsoft.Office.Interop.Excel.Worksheet)ExcelBook.Worksheets[1];//如果数据中存在数字类型 可以让它变文本格式显示ExcelSheet.Cells.NumberFormat = "@";//设置工作表名ExcelSheet.Name = title;//设置Sheet标题string start = "A1";string end = ChangeASC(DT.Columns.Count) + "1";Microsoft.Office.Interop.Excel.Range _Range = (Microsoft.Office.Interop.Excel.Range)ExcelSheet.get_Range(start, end);_Range.Merge(0);                     //单元格合并动作(要配合上面的get_Range()进行设计)_Range = (Microsoft.Office.Interop.Excel.Range)ExcelSheet.get_Range(start, end);_Range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;_Range.Font.Size = 22; //设置字体大小_Range.Font.Name = "宋体"; //设置字体的种类 ExcelSheet.Cells[1, 1] = title;    //Excel单元格赋值_Range.EntireColumn.AutoFit(); //自动调整列宽//写表头for (int m = 1; m <= DT.Columns.Count; m++){ExcelSheet.Cells[2, m] = DT.Columns[m - 1].ColumnName.ToString();start = "A2";end = ChangeASC(DT.Columns.Count) + "2";_Range = (Microsoft.Office.Interop.Excel.Range)ExcelSheet.get_Range(start, end);_Range.Font.Size = 15; //设置字体大小_Range.Font.Bold = true;//加粗_Range.Font.Name = "宋体"; //设置字体的种类  _Range.EntireColumn.AutoFit(); //自动调整列宽 _Range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;}//写数据for (int i = 0; i < DT.Rows.Count; i++){for (int j = 1; j <= DT.Columns.Count; j++){//Excel单元格第一个从索引1开始// if (j == 0) j = 1;ExcelSheet.Cells[i + 3, j] = DT.Rows[i][j - 1].ToString();}}//表格属性设置for (int n = 0; n < DT.Rows.Count + 1; n++){start = "A" + (n + 3).ToString();end = ChangeASC(DT.Columns.Count) + (n + 3).ToString();//获取Excel多个单元格区域_Range = (Microsoft.Office.Interop.Excel.Range)ExcelSheet.get_Range(start, end);_Range.Font.Size = 12; //设置字体大小_Range.Font.Name = "宋体"; //设置字体的种类_Range.EntireColumn.AutoFit(); //自动调整列宽_Range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; //设置字体在单元格内的对其方式 _Range.EntireColumn.AutoFit(); //自动调整列宽 }ExcelApp.DisplayAlerts = false; //保存Excel的时候,不弹出是否保存的窗口直接进行保存 //弹出保存对话框,并保存文件Microsoft.Win32.SaveFileDialog sfd = new Microsoft.Win32.SaveFileDialog();sfd.DefaultExt = ".xlsx";sfd.Filter = "Office 2007 File|*.xlsx|Office 2000-2003 File|*.xls|所有文件|*.*";if (sfd.ShowDialog() == true){if (sfd.FileName != ""){ExcelBook.SaveAs(sfd.FileName);  //将其进行保存到指定的路径//    MessageBox.Show("导出文件已存储为: " + sfd.FileName, "温馨提示");}}//释放可能还没释放的进程ExcelBook.Close();ExcelApp.Quit();// PubHelper.Instance.KillAllExcel(ExcelApp);return sfd.FileName;}catch{//   MessageBox.Show("导出文件保存失败!", "警告!");return null;}}/// <summary>/// 获取当前列列名,并得到EXCEL中对应的列/// </summary>/// <param name="count"></param>/// <returns></returns>private string ChangeASC(int count){string ascstr = "";switch (count){case 1:ascstr = "A";break;case 2:ascstr = "B";break;case 3:ascstr = "C";break;case 4:ascstr = "D";break;case 5:ascstr = "E";break;case 6:ascstr = "F";break;case 7:ascstr = "G";break;case 8:ascstr = "H";break;case 9:ascstr = "I";break;case 10:ascstr = "J";break;case 11:ascstr = "K";break;case 12:ascstr = "L";break;case 13:ascstr = "M";break;case 14:ascstr = "N";break;case 15:ascstr = "O";break;case 16:ascstr = "P";break;case 17:ascstr = "Q";break;case 18:ascstr = "R";break;case 19:ascstr = "S";break;case 20:ascstr = "Y";break;default:ascstr = "U";break;}return ascstr;}}
}

WPF datagrid数据导出到Excel表格相关推荐

  1. 百度指数常见php框架,怎么导出数据到excel表格-如何将百度指数数据导出到Excel表格...

    如何将百度指数数据导出到Excel表格 第一步:打开CAD.CAD命令行输入"Li"."选择对象"选需要提取坐标的多段线.回车. 第二步:将CAD文本框中的数据 ...

  2. php怎么将表格导出到excel表格,php怎么将excel表格数据-php 怎么把数据导出到excel表格...

    如何使用php实现将数据从excel表导入到mysql中? /** * @param array $data //二维数组 不是对象 * @param string $filename //导件 */ ...

  3. php 链接excel表格数据,php 怎么把数据导出到excel表格?php 连接 excel表格数据库数据...

    php 怎么把数据导出到excel表格 php 把数据导出到excel表多种方法如使用 phpExcel 等,以下代码是直接通 header 生成 excel 文件的代码示例: header(&quo ...

  4. 查询php 输出表格,php输出excel表格数据-PHP如何将查询出来的数据导出成excel表格(最好做......

    PHP如何将查询出来的数据导出成excel表格(最好做... php 把数据导出excel表格有多种方法,使用 phpExcel 等,以下代码接通过 header 生成 excel 文件的代码示例: ...

  5. php 输入表格数据,怎样将导出数据输入Excel 表格-php 怎么把数据导出到excel表格...

    如何将word文档中的数据导入到excel表格中 方法如下: 1.首先,打开媒介工具"记事本",将word文件里需要导入的数据,复制粘贴到记事本当中,然后保存成为txt文件,本例中 ...

  6. 表格导出计算机,电脑怎么导出excel表格数据-如何将百度指数数据导出到Excel表格...

    系统没有导出功能,电脑表格里的数据有什么方法拿... 将网页表格数据导入到Excel中的方法: 第一步,将包括所需表格的网页打开,并按CTRL C把网址复制到剪贴板,以备下一步使用. 第二步,打开运行 ...

  7. 2021-08-01数据导出到Excel表格

    数据导出到Excel表格 https://www.cnblogs.com/zhangzhiyong-/p/13376527.html package com.jxmcloud.business.sho ...

  8. 【纯干货】SSM 实现将数据导出为 Excel 表格(利用反射实现类型通配)

    0. 这里假设 SSM 环境已经搭建完成 1. 需要三个依赖包 <!-- 导出为 Excel --> <dependency><groupId>org.apache ...

  9. vb 读取oracle中的表格数据,如何将数据库信息读取导出excel表格中-VB 从SQL数据库中把数据导出到Excel表格中,怎么写?...

    VB 从SQL数据库中把数据导出到Excel表格中,怎么写? INSERT INTO OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Data Source=&q ...

最新文章

  1. java获得单元格的值_java – 从单元格值Apache POI获取单元格索引
  2. CSS布局基础之二认识Viewport
  3. Jquery 选择器大全 【转载】
  4. exe打包工具哪个最好_一键分发工具哪个最好用?这款30万人都在用,很优秀!...
  5. Android执行时ART载入OAT文件的过程分析
  6. 略谈永中OFFICE的语言国际化
  7. 数学建模应用系列之经济问题
  8. dedecms分页样式修改 内容页 上一页 下一页
  9. CAD迷你看图软件中怎么进行实时缩放建筑图纸的大小?
  10. Java_GPS经纬度转坐标
  11. 多看电纸书如何安装第三方软件(如微信读书、梅糖桌面、Eink桌面等)
  12. 正态分布是离散分布还是连续分布_简单统计学|正态分布之连续数据的概率分布...
  13. 项目vite1.0升级到2.0打包遇到Some chunks are larger问题如何解决
  14. Prometheus安装配置及其相关组件的应用
  15. Hammer.js 进行图片缩放
  16. ios 自定义滑杆
  17. 转 一个游戏程序员的学习资料
  18. 美国国土安全部仍然使用COBOL语言
  19. android4.3从app到kernel代码追踪gsensor所遇到的问题
  20. 问题 I: decimal

热门文章

  1. 课后实践9:以拼多多为例,原型设计
  2. C语言——相关学习资源网站及工具
  3. Gephi简易学习[一]———— Gephi安装,并了解Gephi
  4. 作为菜鸟的我,努力学编程就对了——初来乍到篇
  5. JAVA计算机毕业设计助农脱贫系统Mybatis+源码+数据库+lw文档+系统+调试部署
  6. csv用excel打开中文乱码
  7. 继百度天工物联网平台对接之后,迈思德网关成功与中国联通APN移动应用平台对接
  8. mysql修复损坏表_在MySQL中,如何修复损坏的表
  9. 项目绩效分析方法-挣值技术
  10. Axios源码深度剖析