一、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();}}
}