草庐IT

工作台

全部标签

c# - 以编程方式创建 Excel 2007 工作表

我正在尝试以编程方式创建Excel2007文档。现在,我发现了两种方法:手动创建XML,如thispost中所述使用第三方库,例如ExcelPackage.目前,我使用ExcelPackage,它有一些非常严重的缺点和问题。因为我不需要创建过于复杂的Excel工作表(最“复杂”的事情是我明确需要将单元格类型设置为数字或文本),我正在寻找接下来的选项1,但我只是想知道是否有生成Excel2007工作表的任何其他好的和受支持的方法?如果无需将它们保存到硬盘驱动器即可创建它们,即生成它们并将它们直接输出到流中,则可获得奖励积分。.net3.0是这里的目标,没有3.5:(编辑:谢谢。XMLSD

c# - 'typeof' 是如何工作的?

我很好奇C#中typeof的“方法体”会是什么样子(很确定我无法在反射器中找到它,因为它是关键字而不是方法)。我猜它等同于GetType(魔术将符号转换为字符串)。查看Reflector中的GetType(string)它调用了一个方法“PrivateGetType”,它调用了“RuntimeTypeHandle.GetTypeByName”,而RuntimeTypeHandle似乎有很多类型背后的逻辑,但GetTypeByName的东西没有显示在Reflector中。 最佳答案 如果你这样做:Typet=typeof(string

c# - 文件共享未按预期工作

我有一个文件共享问题,我的进程正在尝试读取一个日志文件,而它当前仍由NLog打开。在诊断问题时,我发现了一些令人惊讶的事情。以下失败:using(varfileStream1=newFileStream("test.file",FileMode.Append,FileAccess.Write,FileShare.Read))using(varfileStream2=newFileStream("test.file",FileMode.Open,FileAccess.Read,FileShare.Read)){}第二个FileStream构造函数调用失败:System.IO.IOExce

c# - FormatterServices.GetUninitializedObject 如何在内部工作?

我的问题相对简单,我感觉GetUninitializedObject(type)方法不会在不调用任何构造函数的情况下生成给定类型的新实例,而是生成一个新的对象,它的行为与正确的对象相同(具有相同的结构)并且显然具有相同的类型(但在内部仍然是一个对象)。我这么说是因为最近我尝试使用GetUninitializedObject克隆一个Form.Button以生成我在该操作期间所需类型的新实例(我对源对象进行递归操作),我的结果具有正确的结构(并且即时窗口也说它具有正确的类型)但是如果我尝试执行MyForm.Components.Add(clonedButton),我会收到一条异常消息:“无

c# - 更新 Excel 工作表时操作必须使用可更新查询

尝试更新Excel工作表时出现此错误:ServerErrorin'/ReadExcelData_Csharp'Application.Operationmustuseanupdateablequery.这是我正在使用的代码:querys="UPDATE[Sheet1$]"+"SET[Number]="+s.Trim()+"WHERE[Number]="+s2.Trim();objcmc=newOleDbCommand(querys,conn);objcmc.ExecuteNonQuery();任何帮助将不胜感激。这是我使用的连接:if(strFileType.Trim()==".xls

c# - 如何加快将 DataTable 转储到 Excel 工作表中的速度?

我有以下例程将DataTable转储到Excel工作表中。privatevoidRenderDataTableOnXlSheet(DataTabledt,Excel.WorksheetxlWk,string[]columnNames,string[]fieldNames){//renderthecolumnnames(e.g.headers)for(inti=0;i无论出于何种原因,在我相对较新的PC上转储25列和400行的DataTable大约需要10-15秒。需要更长的测试人员机器。我可以做些什么来加快这段代码的速度吗?还是互操作本身就很慢?解决方案:根据HelenToomik的建

c# - 当我调用 OpenFileDialog 的 ShowDialog 方法时,vshost32.exe 已停止工作

我有一个C#应用程序,我正在对其进行最终测试。但是现在,一个一直有效的功能现在不再有效了!我有一个按钮,当我点击它时我想浏览文件,我看到“打开文件”窗口,半秒后,我收到一个未捕获的visualstudio错误:vshost32.exe已停止工作:很抱歉,错误发生在法语本地化的计算机上:Signatureduproblème :Nomd’événementdeproblème:APPCRASHNomdel’application:TOM.vshost.exeVersiondel’application:10.0.30319.1Horodatagedel’application:4ba20

c# - SelectListItem selected = true 在 View 中不工作

我有一个性别选择字段(--选择--、男性、女性),我正在我的Controller中填充它。当页面加载时,我希望在页面加载时自动选择在模型pm.Gender中选择的性别。pm.Gender的值返回为:""“M”“F”查看:m.Gender,(IEnumerable)ViewData["gender"],new{@class="span2"})%>Controller:gender=new[]{"Select","Male","Female"};ListgenderselectList=newList();foreach(stringitemingender){SelectListItem

c# - "Class of <T> where T : Enum"不工作

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:CreateGenericmethodconstrainingTtoanEnum为什么我们不能在C#中执行此操作?而且,如果可能的话,我怎样才能做类似的事情!我想要什么:publicclassATagwhereT:enum{[Somecode..]}publicclassclassBasewhereT:enum{publicIDictionarytags{get;set;}}因此,当需要调用它时,我很确定只会获得我的枚举值之一。publicclassAClassUsingTag:classBase{publi

c# - 当 T 是结构时,List<T>.Find 如何工作?

我有一个List>.我需要按照以下方式做一些事情list.Find(x=>x.Key=="foobar")但是,如果列表中不存在,行为会是什么?通常它会返回null,但结构不能为null。 最佳答案 我的建议是对不可为null的类型使用FindIndexintindex=list.FindIndex(x=>x.Key=="foobar");if(index>=0){//found!UseResult(list[index]);}如果Find()不成功,返回默认值default(T)。对于不可空类型,此结果无法与具有默认值的常规条目区