网站建站助手,仿小米论坛的wordpress主题,今天发生了什么重大新闻,建设银行不招聘网站【 声明#xff1a;版权所有#xff0c;欢迎转载#xff0c;请勿用于商业用途。 联系信箱#xff1a;feixiaoxing 163.com】 对于在工厂上班的小伙伴来说#xff0c;导出生产数据、生成报表#xff0c;这是很习以为常的一个工作。之前的文章中#xff0c;虽然我们也介绍…【 声明版权所有欢迎转载请勿用于商业用途。 联系信箱feixiaoxing 163.com】 对于在工厂上班的小伙伴来说导出生产数据、生成报表这是很习以为常的一个工作。之前的文章中虽然我们也介绍了json脚本、sqlite数据库、mysql数据库这类数据保存的方式但是它们只是我们程序员比较熟悉的数据保存形式。而工厂里面的工人或者车间的管理人员来说他们比较习惯的树汇总方式其实还是报表简单来说就是excel表格。 今天我们正好学习下如果用c# wpf生成excel表格。在这过程中需要安装一下开源库ClosedXML。 1、安装好开源库ClosedXML ClosedXml里面有一个Excel库里面确实实现可以帮助我们创建生成excel文件的功能。所以第一步还是要麻烦大家安装一下ClosedXml库直接用NuGet安装就可以了 2、准备好测试界面 测试界面可以做的比较简单一点比如就是一个按钮就行内容如下所示
Window x:ClassWpfApp.MainWindowxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:localclr-namespace:WpfAppmc:IgnorabledTitleExportDemo Height450 Width800GridButton x:Nameexport Contentexport ForegroundGreen ClickStart_Click HorizontalAlignmentLeft Margin300,195,0,0 VerticalAlignmentTop Width95 Height45Button.ResourcesStyle TargetType{x:Type Border}Setter PropertyCornerRadius Value5/Setter/Style/Button.Resources/Button/Grid
/Window 转成界面的话就应该是这样 3、开始设计代码 代码中最主要的内容其实就是按钮的回调函数。在函数中一般有三个部分第一就是准备excel的基本数据这个数据结构DataTable就可以完成第二个部分就是选择保存的地址一般会弹出一个对话框让用户来进行选择第三呢就是用XlWorkbook把之前的DataTable数据收入进来同时保存到对应的目录如果整个过程没有问题代表我们的过程就是ok的。
using ClosedXML.Excel;
using System;
using System.Collections.Generic;
using System.Data;
using System.Windows;namespace WpfApp
{/// summary/// MainWindow.xaml 的交互逻辑/// /summarypublic partial class MainWindow : Window{// construct functionpublic MainWindow(){InitializeComponent();}// start button functionprivate void Start_Click(object sender, RoutedEventArgs e){// set the title for each columnDataTable dataTable new DataTable(Report);dataTable.Columns.Add(Name, typeof(string));dataTable.Columns.Add(Age, typeof(int));dataTable.Columns.Add(Gender, typeof(string));// add datadataTable.Rows.Add(Bill, 30, Male);dataTable.Rows.Add(Jack, 25, Male);dataTable.Rows.Add(Lily, 20, Female);// choose pathMicrosoft.Win32.SaveFileDialog saveFileDialog new Microsoft.Win32.SaveFileDialog();saveFileDialog.FileName Report;saveFileDialog.DefaultExt .xlsx;saveFileDialog.Filter Excel Workbook (.xlsx)|*.xlsx|All Files (*.*)|*.*;bool? result saveFileDialog.ShowDialog();if (result true){try{// create fileusing (var workbook new XLWorkbook()){// create datasheetworkbook.Worksheets.Add(dataTable);// save it to relevant pathworkbook.SaveAs(saveFileDialog.FileName);}MessageBox.Show(Successfully export the file, Success, MessageBoxButton.OK, MessageBoxImage.Information);}catch (Exception ex){MessageBox.Show($Error is{ex.Message}, Error, MessageBoxButton.OK, MessageBoxImage.Error);}}}}
} 4、测试和验证 编译无误之后就可以开始测试和验证。验证有两个部分第一需要看下对话框有没有弹出提示我们文件已经成功导出第二需要看下导出的文件里面的内容和我们之前设计的部分是不是真的一致。