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

Unity 导出Excel表格

一、C#创建并导出Excel表格

1.首先,需要导入EPPlus.dll;(我这里用的是Unity 2017.3.0f3)

https://download.csdn.net/download/qq_41603955/90670669

2.代码如下:

using UnityEngine;
using UnityEditor;
using System.IO;
using OfficeOpenXml;public class ExcelTools : MonoBehaviour {[MenuItem("Excel操作/导出Excel表格")]static void 创建并导出Excel表格(){// 获取桌面路径string desktopPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.DesktopDirectory);string path = Path.Combine(desktopPath, "公司信息表.xlsx");FileStream fs = new FileStream(path, FileMode.Create);using (var package = new ExcelPackage(fs)){ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("表1");worksheet.Cells[1, 1].Value = "公司名称";worksheet.Cells[1, 2].Value = "公司地址";worksheet = package.Workbook.Worksheets.Add("表2");worksheet.Cells[1, 1].Value = "员工姓名";worksheet.Cells[1, 2].Value = "员工薪资";package.Save();}fs.Close();AssetDatabase.Refresh();}
}

如此,就可以把Excel表格导出到电脑桌面上了。

1.该程序无需启动Unity编辑器;
2.在点击“Excel操作”→"导出Excel表格"之前,请务必先关闭Excel表格,否则会报错。

二、从Mysql数据表中读取并导出Excel表格

1.导入Mysql.Data.dll和System.Data.dll;

2.看一下我的mygamedb数据表users:

3.代码如下:

using System.Data;
using System.IO;
using UnityEngine;
using MySql.Data.MySqlClient;
using OfficeOpenXml;
using UnityEditor;
using System;public class ExcelManager : MonoBehaviour
{[MenuItem("Excel操作/导出Excel表格")]static void ExportToExcel(){// 获取桌面路径string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);string filePath = Path.Combine(desktopPath, "用户数据表.xlsx");FileInfo fileInfo = new FileInfo(filePath);try{// 检查文件是否存在,如果存在则尝试删除if (fileInfo.Exists){fileInfo.Delete();}}catch (IOException ex){Console.WriteLine("删除文件时出现错误: " + ex.Message);// 可以选择在这里进行其他处理,如记录日志等return;}using (ExcelPackage excelPackage = new ExcelPackage(fileInfo)){ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("用户表");// 设置标题worksheet.Cells["A1"].Value = "序号";worksheet.Cells["B1"].Value = "用户名";worksheet.Cells["C1"].Value = "密码";worksheet.Cells["D1"].Value = "注册日期";string connectionStr = "server=localhost;port=3306;database=mygamedb;user=root;password=123456;";// 获取数据库中的数据MySqlConnection conn = new MySqlConnection(connectionStr);conn.Open();DataTable dataTable = new DataTable();using (MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT * FROM users", conn)){adapter.Fill(dataTable);}conn.Close();// 填充数据for (int i = 0; i < dataTable.Rows.Count; i++){worksheet.Cells[i + 2, 1].Value = dataTable.Rows[i]["id"];worksheet.Cells[i + 2, 2].Value = dataTable.Rows[i]["username"];worksheet.Cells[i + 2, 3].Value = dataTable.Rows[i]["password"];worksheet.Cells[i + 2, 4].Value = dataTable.Rows[i]["registerdate"];// 设置日期格式,包含时分秒worksheet.Cells[i + 2, 4].Style.Numberformat.Format = "yyyy-MM-dd HH:mm:ss";}// 设置 D 列(索引为 4,从 1 开始计数)宽度,确保能完整显示日期时间worksheet.Column(4).Width = 20;// 保存文件excelPackage.Save();}}
}

http://www.xdnf.cn/news/91405.html

相关文章:

  • 可变参数模板 和 折叠表达式 (C++)
  • 人工智能-模型评价与优化(过拟合与欠拟合,数据分离与混淆矩阵,模型优化,实战)
  • 《AI大模型应知应会100篇》第32篇:大模型与医疗健康:辅助诊断的可能性与风险
  • RAG进阶:Embedding Models嵌入式模型原理和选择
  • 【网络应用程序设计】实验一:本地机上的聊天室
  • 1.HTTP协议与RESTful设计
  • char32_t、char16_t、wchar_t 用于 c++ 语言里存储 unicode 编码的字符,给出它们的具体定义
  • 【武汉理工大学第四届ACM校赛】copy
  • 凡清亮相第十五届北京国际电影节电影嘉年华,用音乐致敬青春与梦想
  • 调和平均数通俗易懂的解释以及为什么这样定义,有什么用
  • 《 C++ 点滴漫谈: 三十四 》从重复到泛型,C++ 函数模板的诞生之路
  • 客户对质量不满意,如何快速响应?
  • ycsb性能测试的优缺点
  • GRS认证有什么要求?GRS认证要审核多久,GRS认证流程
  • 旅游行业路线预定定制旅游小程序开发
  • vivado XMP使用
  • 2023蓝帽杯初赛内存取证-1
  • ROS2 安装详细教程,Ubuntu 22.04.5 LTS 64 位 操作系统
  • Nacos 是如何实现 Raft 协议的?Raft 协议的关键组件和流程是什么?
  • Java基础复习(JavaSE进阶)第八章 多线程
  • C++静态与动态联编区别解析
  • Vue3简介
  • TDengine 查询引擎设计
  • 滑动模式观测器(Sliding mode observer)
  • 机器视觉的液晶屏点胶应用
  • 飞搭系列 | 组件增加标记,提升用户体验
  • android开发-BuildConfig无法生成
  • [Java · 铢积寸累] 数据结构 — 二维数组 - 概念引入
  • 潮玩+智显 |电子价签演绎潮玩信息智显的百变状态
  • Linux系统之----进程的概念