我正在使用NPOI从Asp.Net MVC应用程序输出excel并且与纯文本一起工作得非常好但是现在已经被要求添加格式并且我遇到问题我需要有一个单元格,粗体文本后跟非粗体文本.例如
这个文字粗体 - 这个文字正常
我知道我可以给单元格一个单一的样式,但这无济于事我无论如何都看不到为单元格提供一些预先格式化的富文本.
我能想到的唯一可能的解决方案是分别创建两个单元格并将它们合并在一起,但这是否意味着格式化将会丢失?
我有没有办法在NPOI中错过这个?
我正在重构一个现有的DAL,它有一个用户调用的外观和一个内部类,它根据ADO.Net提供程序进行实际工作,例如SqlProvider,我正在努力确保代码干,我'通过使用Func完成了所以我可以这样做:
return RunCommand(c => c.ExecuteNonQuery(commandText, parameters));
Run Code Online (Sandbox Code Playgroud)
RunCommand方法如下所示:
private T RunCommand<T>(Func<Commands, T> toRun)
{
return toRun(CreateCommand());
}
Run Code Online (Sandbox Code Playgroud)
该CreateCommand()
方法只是构建要使用的命令对象,这允许我有一个方法来处理所有只返回预期类型的调用,例如DataSet,DataReader等
我遇到的问题是,在立面上的几个调用提供了一个out
参数,我知道应该可以删除重复的代码,如果我可以使用委托,但经过大量的谷歌搜索和实验我没有设法弄清楚如何.代码是:
Commands commands = CreateCommand();
return commands.ExecuteNonQuery(out cmd, commandText, parameters);
Run Code Online (Sandbox Code Playgroud)
我真正想做的是能够打电话:
return RunCommand(c => c.ExecuteNonQuery(out cmd, commandText, parameters));
Run Code Online (Sandbox Code Playgroud)
我已经看到了这个现有问题,但对于我的生活,我无法弄清楚如何将其变成我需要的东西.
这个代表似乎是我需要的,private delegate V TestOutParameter<T, U, V>(T a, out U b, V c);
但我调用它的代码是不正确的:
private V RunCommand<T, U, V>(TestOutParameter<Commands, DbCommand, V> commandToExecute)
{
DbCommand cmd;
return (V)commandToExecute(CreateCommand(), out cmd);
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我,因为这让我疯了一个星期!
我有一个使用内部激活设置的单机服务代理,该代理正在处理放置在队列中的项目,似乎正在正确关闭对话(请参阅下面的配置文件详细信息)。
sys.conversation_endpoints中的一条记录保留在CD-CLOSED状态下,其security_timestamp设置为将来30分钟,但永远不会删除该记录。
我也有自己的日志,它显示发生了什么,唯一看起来很奇怪的是,启动程序被调用为具有session_handle,message_type和message_body(我的日志信息中的最后一项)的空值
我包含了一个脚本(名称更改后并不表示实际名称),该脚本将创建我正在使用的所有对象,并模仿我的使用方式,只需执行以下命令即可:
dbo.usp_QueueRequest 2, null, 'Trial'
Run Code Online (Sandbox Code Playgroud)
那应该给你我一直以来看到的相同结果
跟踪:
EventClass TextData SPID Event Sequence EventSubClass
Broker:Activation 30 1394 1 - Start
Broker:Conversation CONVERSING 30 1395 1 - SEND Message
Broker:Message Classify 30 1396 1 - Local
Broker:Conversation CONVERSING 30 1397 6 - Received Sequenced Message
Broker:Activation 31 1398 1 - Start
Broker:Conversation DISCONNECTED_OUTBOUND 31 1399 2 - END CONVERSATION
Broker:Conversation Group 31 1400 2 - Drop
Broker:Message Classify 31 1401 1 - Local
Broker:Conversation DISCONNECTED_INBOUND 31 1402 7 - …
Run Code Online (Sandbox Code Playgroud) 我有以下代码:
public IList<Tweet> Match(IEnumerable<Tweet> tweetStream, IList<string> match, IList<string> exclude)
{
var tweets = from f in tweetStream
from m in match
where f.Text.ToLowerInvariant().Contains(m)
select f;
var final = from f in tweets
from e in exclude
where !f.Text.ToLowerInvariant().Contains(e.ToLowerInvariant())
select f;
return final.Distinct().ToList<Tweet>();
}
Run Code Online (Sandbox Code Playgroud)
我一直在构建测试,其中没有包含final
结果集并且已经愉快地匹配现在我已添加了排除如果IList<string>exclude
为空则所有项目都被删除.
所以这个测试按原样通过:
[TestMethod]
public void Should_exclude_items_from_exclude_list()
{
IEnumerable<Tweet> twitterStream = new List<Tweet>
{
new Tweet("I have a Mazda car"),
new Tweet("I have a ford"),
new Tweet("Mazda Rules"),
new Tweet("My Ford car is great"), …
Run Code Online (Sandbox Code Playgroud) 我正在使用第三方Web服务,它在其中一个类上公开了一个status属性,但这个属性实际上是另一个类本身.
虽然这不是很好的震撼,但我正在尝试更容易地为公司中的其他开发人员使用这个Web服务,因为Web服务被抽象化了,我们有自己的适配器类,只暴露我们需要的属性/方法,我一直在试图想出一种方法,让我像对待enum一样对待状态对象
我想直到结束是什么样 object.status = StatusAdapter.<value>
在任何人说"简单地使用枚举"之前我不仅仅使用枚举的原因是Web服务对象所代表的状态数据可以由用户随时添加,这意味着我必须更改类库并重新部署到使用它的所有应用程序.
有任何想法吗?
编辑 为了澄清我希望最终开发人员能够执行以下操作,当StatusAdapter不是枚举但在运行时动态填充时,沿着枚举行.
If(foo.Status == StatusAdapter.NotStarted){...}
Run Code Online (Sandbox Code Playgroud)