关于UNITY中System.Drawing引用失败的处理方法

news/2024/7/21 7:30:27 标签: excel, unity, c#

关于UNITY中System.Drawing引用失败的处理方法

今天在使用EPPlus中,遇到一个处于This type has been forwarded to assembly ‘System.Drawing,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a’ .
You must add a reference to assembly ‘System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’.的问题。

目的是要在UNITY中使用C#更改Excel中字体或者边框的颜色,但是在颜色这里遇到了两边版本不一致的问题。以下是我做的处理操作即Debug。

问题代码如下(以设置单元格边框为例)

网上找到使用EPPlus设置Excel单元格边框有两种方式

//第一种
//worksheet.Cells[i + 7, 10].Style.Border.BorderAround(ExcelBorderStyle.Thin, Color.FromArgb(191, 191, 191));//设置单元格所有边框
worksheet.Cells[i + 7, 10].Style.Border.BorderAround(ExcelBorderStyle.Thin, System.Drawing.Color.Black);//设置单元格所有边框
//第二种
worksheet.Cells[i + 7, 10].Style.Border.Top.Style = ExcelBorderStyle.Thin;
worksheet.Cells[i + 7, 10].Style.Border.Bottom.Style = ExcelBorderStyle.Thin;
worksheet.Cells[i + 7, 10].Style.Border.Left.Style = ExcelBorderStyle.Thin;
worksheet.Cells[i + 7, 10].Style.Border.Right.Style = ExcelBorderStyle.Thin;

//worksheet.Cells[i + 7, 10].Style.Border.Top.Color.SetColor(Color.FromArgb(191, 191, 191));
//worksheet.Cells[i + 7, 10].Style.Border.Bottom.Color.SetColor(Color.FromArgb(191, 191, 191));
//worksheet.Cells[i + 7, 10].Style.Border.Left.Color.SetColor(Color.FromArgb(191, 191, 191));
//worksheet.Cells[i + 7, 10].Style.Border.Right.Color.SetColor(Color.FromArgb(191, 191, 191));

worksheet.Cells[i + 7, 10].Style.Border.Top.Color.SetColor(System.Drawing.Color.Black);
worksheet.Cells[i + 7, 10].Style.Border.Bottom.Color.SetColor(System.Drawing.Color.Black);
worksheet.Cells[i + 7, 10].Style.Border.Left.Color.SetColor(System.Drawing.Color.Black);
worksheet.Cells[i + 7, 10].Style.Border.Right.Color.SetColor(System.Drawing.Color.Black);

以上代码是两种设置单元格边框格式的方法,经测试都可以使用,但要注意在UNITY中会提示Color有两个命名空间都存在需要指定一个,所以我这里采用的是System.Drawing.Color.Black。
屏蔽处为原文。

之后查看了一下System.Drawing的版本,在我这里的是4.X所以就是开头说的问题,需要添加2.X版本。
在Unity的安装路径下D:\unity\2018.4.31f1\Editor\Data\Mono\lib\mono\2.0(因个人而异)找到在这里插入图片描述
添加到项目的Plugins文件夹下即可(没有就自己新建一个也行)。
问题到此解决,很多原理东西我也不是很明白,这里关于C#使用EPPlus访问更改Excel的代码参考一个14年关于EPPlus的说明博文。


http://www.niftyadmin.cn/n/802159.html

相关文章

串口输出换行_STM32CubeMX软件开发教程——串口通信

通用同步异步收发器(USART)提供了一种灵活的方式与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互联网),智能卡协议和IrDA…

怎样精准定位并解决Unity中出现两台电脑显示状况不同的问题

解决Unity中出现两台电脑显示状况不同的问题问题表述问题的图示程序功能解决思路代码出错?Modbus通讯出错?TCP/IP通讯协议出错?数据库访问出错?ini配置文件出错?结尾问题表述 在做工程中,我这里出现了我的…

18650锂电池保护板接线图_锂电池保护板几种接线方法介绍 - 全文

锂电池保护板简介锂电池保护板是对串联锂电池组的充放电保护;在充满电时能保证各单体电池之间的电压差异小于设定值(一般20mV),实现电池组各单体电池的均充,有效地改善了串联充电方式下的充电效果;同时检测电池组中各个单体电池的…

移动安全时代,如何保护你的app

Android系统的安全性历来备受诟病,在强大的反编译工具下,APK中的代码逻辑一览无余;重打包技术使得各种盗版软件层出不穷,充斥着Android市场,特别是对于金融、电商、游戏等产品的盗版应用,严重地威胁用户安全…

unity生成的exe文件点了却没反应?(其中一类解决方案,希望大家可以一起来完善)

unity生成的exe文件点了却没反应?问题的描述、形成原因及四种处理方式问题描述一、分辨率太低二、QQprotect(即Q盾程序)三、“以管理员身份运行”(目前没找到问题原因但确实对问题有用)四、显卡问题(于2021…

jmeter中变量的作用范围_Jmeter添加变量的四种方法

一、在样本中添加同请求一起发送的参数。根据服务器设置的数据类型,来添加不同类型的参数二、用户定义的变量1、创建:添加->配置元件->用户定义的变量2、作用:当前的线程组内所有Sampler都可以引用变量,方便脚本更新&#x…

家中闲置旧电脑改装家用NAS(入门教程)

家中闲置旧电脑改装家用NAS(纯小白入门教程)什么是NAS?NAS的基本知识在国内的常用品牌NAS品牌的配置问题作者的硬件配置装机正文准备工作旧电脑的准备工作(已经完成或无这方面问题的可跳过)引导盘的制作旧电脑的设置调…

根据坐标如何标记图片_Gnuplot科学绘图(十)——第二坐标轴

Gnuplot科学绘图系列内容Gnuplot科学绘图(一)——从安装到简单函数绘图(文末有彩蛋)Gnuplot科学绘图(二)——坐标取值范围及刻度(文末有彩蛋)Gnuplot科学绘图(三)——点线风格Gnuplot科学绘图(四)——多组数据绘图Gnuplot科学绘图(五)——输出eps 图片Gnuplot科学绘图(六)——输…