我有一个C#应用程序,我从数据库中的数据创建大量的Excel文件.这部分工作正常.但是,我的用户询问是否可以修改工作表选项卡以反映数据库中的字段.这听起来很简单,但是,当我尝试重置名称时,它告诉我它是只读的,无法设置.我尝试过以下内容并没有奏效:
xlApp.Sheets[0].Range["A1"].Value = "NewTabName";
Run Code Online (Sandbox Code Playgroud)
还试过:
xlApp.Name = "NewTabName";
Run Code Online (Sandbox Code Playgroud)
我做了谷歌搜索,并看到了一些其他方法对我也没有用.一些回复表明它是只读的,无法完成.
这看起来应该很简单.我该怎么做.
天真地,我期望ThreadLocal是某种类型的Thread的WeakHashMap.当我得知ThreadLocal的值实际上保存在Thread中的一个映射中时,我有点困惑.为什么这样做?我希望如果值保存在ThreadLocal本身中,那么与ThreadLocal相关的资源泄漏就不会存在.
澄清:我在考虑类似的事情
public class AlternativeThreadLocal<T> {
private final Map<Thread, T> values =
Collections.synchronizedMap(new WeakHashMap<Thread, T>());
public void set(T value) { values.put(Thread.currentThread(), value); }
public T get() { return values.get(Thread.currentThread());}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,这可以防止一个奇怪的问题,即如果值以某种方式强烈引用ThreadLocal本身,那么ThreadLocal和它遗留的值都不会被垃圾收集,直到Thread死掉.(当ThreadLocal是值引用的类上的静态变量时,可能会出现最狡猾的形式.现在,在应用程序服务器的重新部署中存在大量资源泄漏,因为无法收集对象及其类.)
有没有一种完善的方式在项目之间共享Ant目标?我目前有一个解决方案,但它有点不优雅.这是我到目前为止所做的.
我ivy-tasks.xml的网络服务器上有一个名为托管的文件.此文件包含用于管理与Ivy的项目依赖关系的样板任务.例如:
<project name="ant-ivy-tasks" default="init-ivy"
xmlns:ivy="antlib:org.apache.ivy.ant">
...
<target name="ivy-download" unless="skip.ivy.download">
<mkdir dir="${ivy.jar.dir}"/>
<echo message="Installing ivy..."/>
<get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
dest="${ivy.jar.file}" usetimestamp="true"/>
</target>
<target name="ivy-init" depends="ivy-download"
description="-> Defines ivy tasks and loads global settings">
<path id="ivy.lib.path">
<fileset dir="${ivy.jar.dir}" includes="*.jar"/>
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml"
uri="antlib:org.apache.ivy.ant"
classpathref="ivy.lib.path"/>
<ivy:settings url="http://myserver/ivy/settings/ivysettings-user.xml"/>
</target>
...
</project>
Run Code Online (Sandbox Code Playgroud)
这个文件被托管的原因是因为我不希望:
我在项目的build.xmls中对此文件的处理方式如下:
<property name="download.dir" location="download"/>
<mkdir dir="${download.dir}"/>
<echo message="Downloading import files to ${download.dir}"/>
<get src="http://myserver/ivy/ivy-tasks.xml" dest="${download.dir}/ivy-tasks.xml" usetimestamp="true"/>
<import file="${download.dir}/ivy-tasks.xml"/>
Run Code Online (Sandbox Code Playgroud)
关于这一点的"脏"部分是我必须在 …
我希望awk解释变量如下
#!/bin/bash
file=tau
f=2.54
order=even
awk '{sum+=$2}; END {print '${file}_${f}_${order}_v1.xls', sum/NR}'
${file}_${f}_${order}_v1.xls >> safe/P-state-summary.xls
Run Code Online (Sandbox Code Playgroud)
我想要所需的输出如下 -
tau_2.54_even_v1.xls sum/NR
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题吗?
MSDN让检测移动浏览器变得非常容易:
if (Request.Browser["IsMobileDevice"] == "true" )
{
Response.Redirect("MobileDefault.aspx");
}
Run Code Online (Sandbox Code Playgroud)
实际上,看起来你也可以只检查Request.Browser.IsMobileDevice.但这实际上是如何运作的呢?我甚至没有.browser文件......幕后发生了什么?ASP.NET 2.0是否有一些内置的默认值?
我正在尝试使用C#构建光栅绘图应用程序,到目前为止,我还无法找到任何多功能轻量级2D图形框架或指南.
我希望你们中的一些人能够给我一个良好的开端,因为目前我的选择是使用GDI +或WPF,这就是它:( ...
基本上我需要一些简单的东西来提供我创建Canvas,Layers,Brushes以及导入/导出所有这些东西的能力.我查看了几个图形应用程序,看看他们是如何实现他们的工具并在线查看书籍,并且不知道从哪里开始.
谢谢,安德鲁
我刚开始学习lambda表达式.
是否可以进一步简化以下代码:
Customer customer = Customers.FirstOrDefault(c => c.ID == 3);
if (customer == null)
{
customer = new Customer() { FirstName = "Ben", LastName = "Foster", ID = 3 };
Customers.Add(customer);
}
// do something with customer
customer.CreateProfile();
Run Code Online (Sandbox Code Playgroud)
基本上我想检查集合中是否存在对象.如果不是我想创建它,请将其添加到集合中,稍后再使用它.
谢谢Ben
我正在接管的项目中有一个DTSX文件.我有Visual Studio 2005 Pro,但它只是将其作为XML文件打开.SQL Server Management Studio 2005也是如此.
我见过人们以某种工作流程格式打开这些文件; 脑海中浮现出商业智能开发工作室.
这是Visual Studio或SQL的一部分吗?是否必须单独购买?我可以使用我的工具以更有用的方式打开此文件吗?
我想使用AuthorizeAttribute来控制允许哪些用户访问我的操作.我只是想澄清我的逻辑是有序的.
事物的正常流动是什么?我知道我可以继承MembershipProvider,但我不需要那里的所有功能,实际上只能用两个不同的角色登录.
我开发了一个ASP.NET控件,其中一个属性是[Flags]枚举.但是,我似乎无法在ASP.NET控件标记中为此属性指定多个标志.有没有特殊的语法来做到这一点,还是不可能?