当前位置: 首页 > news >正文

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的异步请求处理机制一起使用&#xff0c;确保在使用Callable或DeferredResult等异步处理方式时&#xff0c;安全上下文能够正…...

使用XxlCrawler抓取全球航空公司ICAO三字码

目录 前言 一、数据源介绍 1、目标网站 2、页面渲染结构 二、XxlCrawler信息获取 1、创建XxlCrawler对象 2、定义PageVo对象 3、直接PageVO解析 4、自定义解析 总结 前言 长距离旅行或者出差&#xff0c;飞机一定是出行的必备方式。对于旅行达人或者出差人员而言&…...

Java String转JSONObject时保持字段顺序不变

Java String转JSONObject时保持字段顺序不变 问题背景解决方案 问题背景 在业务接口开发过程中&#xff0c;有一个新增接口&#xff0c;需要支持批量新增数据&#xff0c;这时入参就需要用到 json 格式数据&#xff0c;且包含 list 集合&#xff0c;比如这样的数据格式&#x…...

Optional用法

说明&#xff1a;Optional和Stream一样&#xff0c;是Java8引入的特性&#xff0c;本文介绍Optional的几个实际用法。Steam流使用&#xff0c;参考下面这篇文章&#xff1a; Stream流使用 使用 1.保证值存在 // 1.保证值存在&#xff0c;pageNumber&#xff0c;pageSizeInte…...

【观成科技】加密C2框架Xiebro流量分析

一、工具介绍 Xiebro是由Golang和 .NET编写&#xff0c;提供支持的多人和多服务器 C2/后开发框架。它支持多种通信协议&#xff0c;包括TCP、websocket等&#xff0c;并且在客户端与Xiebro服务器之间的通信通常采用AES加密来保障安全性和隐蔽性。 二、工具原理分析 Xiebro C…...

【八大排序算法】插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序、计数排序

文章目录 一、排序的相关概念二、排序类型三、排序算法实现插入排序1.直接插入排序2.希尔排序 选择排序3.简单选择排序4.堆排序 交换排序5.冒泡排序6.快速排序递归实现非递归实现 7.归并排序递归实现非递归实现 8.计数排序 四、总结 一、排序的相关概念 排序&#xff1a;根据数…...

Flutter 中的 CupertinoActionSheet 小部件:全面指南

Flutter 中的 CupertinoActionSheet 小部件&#xff1a;全面指南 在Flutter中&#xff0c;CupertinoActionSheet是用于在iOS风格的应用中显示动作面板的组件。它提供了一个简洁的界面&#xff0c;让用户可以快速从一组选项中做出选择。CupertinoActionSheet通常伴随着一个或多…...

IDEA 好用的插件

图标插件&#xff1a;Atom Material Icons 此插件的作用就是更好的显示各种文件的类别&#xff0c;使之一目了然 汉化包 Chinese ​(Simplified)​ Language Pack / 中文语言包 作用就是 汉化 AI编码助手 GitHub Copilot AI编码助手&#xff1a;提示代码很好用 缺点&#xff1a…...

leetcode——链表的中间节点

876. 链表的中间结点 - 力扣&#xff08;LeetCode&#xff09; 链表的中间节点是一个简单的链表OJ。我们要返回中间节点有两种情况&#xff1a;节点数为奇数和节点数是偶数。如果是奇数则直接返回中间节点&#xff0c;如果是偶数则返回第二个中间节点。 这道题的解题思路是&a…...

稳定网络的诀窍:静态住宅代理解决方案

在数字化时代&#xff0c;网络稳定性对于个人和企业都至关重要。然而&#xff0c;由于多种因素的影响&#xff0c;如地理位置、网络拥堵或网络安全问题等&#xff0c;网络稳定性常常受到挑战。为了应对这些挑战&#xff0c;静态住宅代理作为一种高效且可靠的网络解决方案&#…...

VACode 创建Vue项目完整过程

一、软件下载 VSCode官网下载地址&#xff1a;https://code.visualstudio.com/ 二、下载开发环境 1. 安装 [Node.js](https://nodejs.org/)&#xff1b; 2. 安装 [npm](https://www.npmjs.com/) 依赖管理工具&#xff1b; 注&#xff1a;node.js安装完后会同步安装npm,一般…...

【C++】详解C++的模板

目录 概念 ​编辑 语法 函数模板 类模板 非类型模板参数 模板的特化 函数模板特化 类模板特化 全特化 偏特化 分离编译 概念 模板是C中非常厉害的设计&#xff0c;模板把通用的逻辑剥离出来&#xff0c;让不同的数据类型可以复用同一种模板的逻辑&#xff0c;甚至可以…...

1146 -Table ‘performance schema.session variables‘ doesn‘t exist的错误解决

一、问题出现 今天在本地连数据库的时候&#xff0c;发现这个问题&#xff0c;哎呦我擦&#xff0c;差点吓死了 二、解决办法 1&#xff09;找文件 用everything搜一下MySQL Server 5.7 然后去Windows服务找一下MySQL配置文件的具体路径 如果知道那最好&#xff0c;不知道那…...

练习题(2024/5/13)

1移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3,4,5]示例 2&#xff1a; …...

LeetCode—设计循环队列(两种方法)

1.题目 2.思路一&#xff08;数组&#xff09; 通过数组进行模拟&#xff0c;通过操作数组的索引构建一个虚拟的首尾相连的环。再循环队列结构中&#xff0c;设置一个队首head和队尾tail&#xff0c;数组的大小固定为k。 初步分析&#xff1a;存在缺陷 改善假溢出问题&#…...

python “名称空间和作用域” 以及 “模块的导入和使用”

七、名称空间和作用域 可以简单理解为存放变量名和变量值之间绑定关系的地方。 1、名称空间 在 Python 中有各种各样的名称空间&#xff1a; 全局名称空间&#xff1a;每个程序的主要部分定义了全局的变量名和变量值的对应关系&#xff0c;这样就叫做全局名称空间 局部名称…...

Pycharm导入自定义模块报红

文章目录 Pycharm导入自定义模块报红1.问题描述2.解决办法 Pycharm导入自定义模块报红 1.问题描述 Pycharm 导入自定义模块报红&#xff0c;出现红色下划线。 2.解决办法 打开【File】->【Setting】->【Build,Execution,Deployment】->【Console】->【Python Con…...

LLMs之KG-RAG:KG-RAG(基于知识图谱的RAG系统)的简介(可以解决多跳问题/同时支持结构化和非结构化数据查询)、经验技巧、案例应用之详细攻略

LLMs之KG-RAG&#xff1a;KG-RAG(基于知识图谱的RAG系统)的简介(可以解决多跳问题/同时支持结构化和非结构化数据查询)、经验技巧、案例应用之详细攻略 背景痛点&#xff1a;传统的基于向量相似度检索的RAG模型回答多环(多步)问题的能力有限&#xff0c;无法同时处理来自多个文…...

综合模型及应用(图论学习总结部分内容)

文章目录 前言六、综合模型及应用(以题目总结为主)分层图思想(包括拆点建图) e g 1 : 通信线路 eg1:通信线路 eg1:通信线路​​​[A-Telephone Lines](https://ac.nowcoder.com/acm/contest/1055/A)(蓝书例题) e g 2 : 小雨坐地铁 eg2:小雨坐地铁 eg2:小雨坐地铁​ [1012-小雨坐…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...

mac:大模型系列测试

0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何&#xff0c;是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试&#xff0c;是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

GeoServer发布PostgreSQL图层后WFS查询无主键字段

在使用 GeoServer&#xff08;版本 2.22.2&#xff09; 发布 PostgreSQL&#xff08;PostGIS&#xff09;中的表为地图服务时&#xff0c;常常会遇到一个小问题&#xff1a; WFS 查询中&#xff0c;主键字段&#xff08;如 id&#xff09;莫名其妙地消失了&#xff01; 即使你在…...

Docker、Wsl 打包迁移环境

电脑需要开启wsl2 可以使用wsl -v 查看当前的版本 wsl -v WSL 版本&#xff1a; 2.2.4.0 内核版本&#xff1a; 5.15.153.1-2 WSLg 版本&#xff1a; 1.0.61 MSRDC 版本&#xff1a; 1.2.5326 Direct3D 版本&#xff1a; 1.611.1-81528511 DXCore 版本&#xff1a; 10.0.2609…...