C# 下载安装,使用OfficeOpenXml
下载安装OfficeOpenXml模块


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection.Emit;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
using OfficeOpenXml;
using OfficeOpenXml.Style;namespace WfrmOfficeOpenXml
{public partial class Form1 : Form{public static string filePath = Regex.Match(System.IO.Directory.GetCurrentDirectory(), @".*(?=:\\)").Value;public static string filePathExcel = filePath + ":\\Content\\Excel";public Form1(){InitializeComponent();label2.Text = filePathExcel;}/// <summary>/// ExcelPackage 保存为Excel文件/// </summary>public static void Test1(){string strFile = filePathExcel + "\\a.xlsx";if (!Directory.Exists(filePathExcel)){Directory.CreateDirectory(filePathExcel);}ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial;using (FileStream fileStream = new FileStream(strFile, FileMode.Create))using (ExcelPackage package = new ExcelPackage(fileStream)){var sheet = package.Workbook.Worksheets.Add("木屋");//添加一个sheetvar cells = sheet.Cells;cells[1, 1].Value = "大大怪将军的小木屋";//给第一行第一列赋值cells["A1:I1"].Style.Font.Bold = true; //指定区域设置字体加粗cells["A1:I1"].Style.Font.Size = 18; //指定区域设置字体加粗cells["A1:I1"].Merge = true;//将A列1行和I列1行的单元格合并//列自适应宽度sheet.Cells.AutoFitColumns();//列文本水平居中显示sheet.Cells.Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.Center;package.Save();//保存}}/// <summary>/// DataTable 保存为Excel文件/// </summary>public static void Test2(){string strFile = filePathExcel + "\\a2.xlsx";if (!Directory.Exists(filePathExcel)){Directory.CreateDirectory(filePathExcel);}DataTable dt = new DataTable();//创建表dt.Columns.Add("ID", typeof(Int32));//添加列dt.Columns.Add("Name", typeof(String));dt.Columns.Add("Age", typeof(Int32));dt.Rows.Add(new object[] { 1, "张三", 20 });//添加行dt.Rows.Add(new object[] { 2, "李四", 25 });dt.Rows.Add(new object[] { 3, "王五", 30 });ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial;using (FileStream fileStream = new FileStream(strFile, FileMode.Create))using (ExcelPackage package = new ExcelPackage(fileStream)){var sheet = package.Workbook.Worksheets.Add("木屋");//添加一个sheetsheet.Cells["A1"].LoadFromDataTable(dt, true);package.Save();//保存}}private void button2_Click(object sender, EventArgs e){Test1();}private void button3_Click(object sender, EventArgs e){Test2();}/// <summary>/// 导出数据库模板/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button1_Click(object sender, EventArgs e){string strFile = filePathExcel + "\\创健数据库模板.xlsx";if (!Directory.Exists(filePathExcel)){Directory.CreateDirectory(filePathExcel);}ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial;using (ExcelPackage package = new ExcelPackage()){ExcelWorksheet xlSheet = package.Workbook.Worksheets.Add("创建表");xlSheet.Cells[1, 1].Value = "表中文名称(中文,示例:部门明细表)";xlSheet.Cells[1, 2].Value = "表英文名称(英文,示例:DepartDetails)";xlSheet.Cells[1, 1].Style.WrapText = true;//自动换行,全局xlSheet.Cells[1, 2].Style.WrapText = true;//自动换行,全局xlSheet.Cells[1, 2, 1, 6].Merge = true;xlSheet.Row(2).Style.Font.Name = "Microsoft YaHei";xlSheet.Row(2).Style.HorizontalAlignment = ExcelHorizontalAlignment.Left;xlSheet.Row(2).Style.VerticalAlignment = ExcelVerticalAlignment.Center;xlSheet.Cells[2, 1].Value = "字段";xlSheet.Cells[2, 2].Value = "说明";xlSheet.Cells[2, 3].Value = "类型(nvarchar(100))";xlSheet.Cells[2, 4].Value = "是否为空(默认不填写就是为空,1为不为空,2为可以空)";xlSheet.Cells[2, 5].Value = "主键(1.为唯一标识主键,2.不为主键,不填默认不是主键)";xlSheet.Cells[2, 6].Value = "索引(1.为索引,2.不为索引,不填默认不是索引)";xlSheet.Cells[2, 7].Value = "默认值";xlSheet.Column(1).Width = 20;//设置列宽xlSheet.Column(2).Width = 20;//设置列宽xlSheet.Column(3).Width = 30;//设置列宽xlSheet.Column(4).Width = 30;//设置列宽xlSheet.Column(5).Width = 30;//设置列宽xlSheet.Column(6).Width = 30;//设置列宽xlSheet.Column(7).Width = 30;//设置列宽xlSheet.Row(2).Style.Font.Name = "Microsoft YaHei";xlSheet.Row(2).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;xlSheet.Row(2).Style.VerticalAlignment = ExcelVerticalAlignment.Center;xlSheet.Row(1).Height = 40;//自动调整行高xlSheet.Row(2).Height = 40;//自动调整行高xlSheet.Cells[2, 3].Style.Font.Size = 10;xlSheet.Cells[2, 3].Style.WrapText = true;//自动换行,全局xlSheet.Cells[2, 4].Style.Font.Size = 10;xlSheet.Cells[2, 4].Style.WrapText = true;//自动换行,全局xlSheet.Cells[2, 5].Style.Font.Size = 10;xlSheet.Cells[2, 5].Style.WrapText = true;//自动换行,全局xlSheet.Cells[2, 6].Style.Font.Size = 10;xlSheet.Cells[2, 6].Style.WrapText = true;//自动换行,全局xlSheet.Cells[2, 7].Style.Font.Size = 10;xlSheet.Cells[2, 7].Style.WrapText = true;//自动换行,全局xlSheet.Cells.Style.Font.Name = "Microsoft YaHei";//全局if (Directory.Exists(filePathExcel)){DelectDir(filePathExcel);//导出excel前先清楚文件夹中文件,防止数据量大}package.SaveAs(new FileInfo(strFile));package.Dispose();label2.Text = strFile;}}/// <summary>/// 删除指定文件夹中文件/// </summary>/// <param name="srcPath"></param>public static void DelectDir(string srcPath){try{DirectoryInfo dir = new DirectoryInfo(srcPath);FileSystemInfo[] fileinfo = dir.GetFileSystemInfos(); //返回目录中所有文件和子目录foreach (FileSystemInfo i in fileinfo){if (i is DirectoryInfo) //判断是否文件夹{DirectoryInfo subdir = new DirectoryInfo(i.FullName);subdir.Delete(true); //删除子目录和文件}else{File.Delete(i.FullName); //删除指定文件}}}catch (Exception e){throw;}}}
}




相关文章:
C# 下载安装,使用OfficeOpenXml
下载安装OfficeOpenXml模块 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Reflection.Emit; using System.Text; using System.Text.RegularEx…...
Spring整体流程源码分析
DisableEncodeUrlFilter 防止sessionId被泄露 包装器模式 WebAsyncManagerIntegrationFilter WebAsyncManagerIntegrationFilter通常与Spring MVC的异步请求处理机制一起使用,确保在使用Callable或DeferredResult等异步处理方式时,安全上下文能够正…...
使用XxlCrawler抓取全球航空公司ICAO三字码
目录 前言 一、数据源介绍 1、目标网站 2、页面渲染结构 二、XxlCrawler信息获取 1、创建XxlCrawler对象 2、定义PageVo对象 3、直接PageVO解析 4、自定义解析 总结 前言 长距离旅行或者出差,飞机一定是出行的必备方式。对于旅行达人或者出差人员而言&…...
Java String转JSONObject时保持字段顺序不变
Java String转JSONObject时保持字段顺序不变 问题背景解决方案 问题背景 在业务接口开发过程中,有一个新增接口,需要支持批量新增数据,这时入参就需要用到 json 格式数据,且包含 list 集合,比如这样的数据格式&#x…...
Optional用法
说明:Optional和Stream一样,是Java8引入的特性,本文介绍Optional的几个实际用法。Steam流使用,参考下面这篇文章: Stream流使用 使用 1.保证值存在 // 1.保证值存在,pageNumber,pageSizeInte…...
【观成科技】加密C2框架Xiebro流量分析
一、工具介绍 Xiebro是由Golang和 .NET编写,提供支持的多人和多服务器 C2/后开发框架。它支持多种通信协议,包括TCP、websocket等,并且在客户端与Xiebro服务器之间的通信通常采用AES加密来保障安全性和隐蔽性。 二、工具原理分析 Xiebro C…...
【八大排序算法】插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序、计数排序
文章目录 一、排序的相关概念二、排序类型三、排序算法实现插入排序1.直接插入排序2.希尔排序 选择排序3.简单选择排序4.堆排序 交换排序5.冒泡排序6.快速排序递归实现非递归实现 7.归并排序递归实现非递归实现 8.计数排序 四、总结 一、排序的相关概念 排序:根据数…...
Flutter 中的 CupertinoActionSheet 小部件:全面指南
Flutter 中的 CupertinoActionSheet 小部件:全面指南 在Flutter中,CupertinoActionSheet是用于在iOS风格的应用中显示动作面板的组件。它提供了一个简洁的界面,让用户可以快速从一组选项中做出选择。CupertinoActionSheet通常伴随着一个或多…...
IDEA 好用的插件
图标插件:Atom Material Icons 此插件的作用就是更好的显示各种文件的类别,使之一目了然 汉化包 Chinese (Simplified) Language Pack / 中文语言包 作用就是 汉化 AI编码助手 GitHub Copilot AI编码助手:提示代码很好用 缺点:…...
leetcode——链表的中间节点
876. 链表的中间结点 - 力扣(LeetCode) 链表的中间节点是一个简单的链表OJ。我们要返回中间节点有两种情况:节点数为奇数和节点数是偶数。如果是奇数则直接返回中间节点,如果是偶数则返回第二个中间节点。 这道题的解题思路是&a…...
稳定网络的诀窍:静态住宅代理解决方案
在数字化时代,网络稳定性对于个人和企业都至关重要。然而,由于多种因素的影响,如地理位置、网络拥堵或网络安全问题等,网络稳定性常常受到挑战。为了应对这些挑战,静态住宅代理作为一种高效且可靠的网络解决方案&#…...
VACode 创建Vue项目完整过程
一、软件下载 VSCode官网下载地址:https://code.visualstudio.com/ 二、下载开发环境 1. 安装 [Node.js](https://nodejs.org/); 2. 安装 [npm](https://www.npmjs.com/) 依赖管理工具; 注:node.js安装完后会同步安装npm,一般…...
【C++】详解C++的模板
目录 概念 编辑 语法 函数模板 类模板 非类型模板参数 模板的特化 函数模板特化 类模板特化 全特化 偏特化 分离编译 概念 模板是C中非常厉害的设计,模板把通用的逻辑剥离出来,让不同的数据类型可以复用同一种模板的逻辑,甚至可以…...
1146 -Table ‘performance schema.session variables‘ doesn‘t exist的错误解决
一、问题出现 今天在本地连数据库的时候,发现这个问题,哎呦我擦,差点吓死了 二、解决办法 1)找文件 用everything搜一下MySQL Server 5.7 然后去Windows服务找一下MySQL配置文件的具体路径 如果知道那最好,不知道那…...
练习题(2024/5/13)
1移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5]示例 2: …...
LeetCode—设计循环队列(两种方法)
1.题目 2.思路一(数组) 通过数组进行模拟,通过操作数组的索引构建一个虚拟的首尾相连的环。再循环队列结构中,设置一个队首head和队尾tail,数组的大小固定为k。 初步分析:存在缺陷 改善假溢出问题&#…...
python “名称空间和作用域” 以及 “模块的导入和使用”
七、名称空间和作用域 可以简单理解为存放变量名和变量值之间绑定关系的地方。 1、名称空间 在 Python 中有各种各样的名称空间: 全局名称空间:每个程序的主要部分定义了全局的变量名和变量值的对应关系,这样就叫做全局名称空间 局部名称…...
Pycharm导入自定义模块报红
文章目录 Pycharm导入自定义模块报红1.问题描述2.解决办法 Pycharm导入自定义模块报红 1.问题描述 Pycharm 导入自定义模块报红,出现红色下划线。 2.解决办法 打开【File】->【Setting】->【Build,Execution,Deployment】->【Console】->【Python Con…...
LLMs之KG-RAG:KG-RAG(基于知识图谱的RAG系统)的简介(可以解决多跳问题/同时支持结构化和非结构化数据查询)、经验技巧、案例应用之详细攻略
LLMs之KG-RAG:KG-RAG(基于知识图谱的RAG系统)的简介(可以解决多跳问题/同时支持结构化和非结构化数据查询)、经验技巧、案例应用之详细攻略 背景痛点:传统的基于向量相似度检索的RAG模型回答多环(多步)问题的能力有限,无法同时处理来自多个文…...
综合模型及应用(图论学习总结部分内容)
文章目录 前言六、综合模型及应用(以题目总结为主)分层图思想(包括拆点建图) e g 1 : 通信线路 eg1:通信线路 eg1:通信线路[A-Telephone Lines](https://ac.nowcoder.com/acm/contest/1055/A)(蓝书例题) e g 2 : 小雨坐地铁 eg2:小雨坐地铁 eg2:小雨坐地铁 [1012-小雨坐…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
