Tag: .net

下载的文件是损坏的不是

我试图通过webapi下载一个文件,除了Excel以外,它完美的工作。 excel文件下载成功,当我打开相同的,它给了我一个“文件已损坏”的错误。 但是,这不是腐败。 当我在互联网上search它是要求我遵循这些: 打开Excel。 点击文件>选项。 select信任中心>信任中心设置。 select受保护的视图。 取消选中受保护视图>确定下的所有选项。 重新启动Excel并尝试打开Excel文档。 更改此设置后,我可以打开下载的文件没有任何问题。 我可以理解这是客户端的事情,但我不想在每台机器上都这样做。 因为,我的保护理解是,如果你下载任何文件,它仍然会打开,但它会处于保护模式。 但在我的情况下,它显示为“文件是腐败”,这是最终用户的错误解释。 我相信有很多网站,你可以从那里下载,并按预期工作,即你仍然可以打开,但在保护模式下。 请注意:从Excel 2013上传文件并从Excel 2010中查看。 这是我目前使用的下载代码: private HttpResponseMessage Execute() { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); StreamContent streamContent = null; if (Content == null) { streamContent = new StreamContent(File.OpenRead(MapPath(LocalPath))); } else { streamContent = new StreamContent(new MemoryStream(Content)); } response.Content = streamContent; response.Content.Headers.ContentType = […]

不能在原始编译机器以外的机器上部署.Net DLL

我已经在Visual Studio 2010 Express中编写了一个VB.NET类库。 我确保在Properties – > Application – > Assembly Information选项卡上select“Make assembly COM-Visible”。 我还确保在属性窗口的编译选项卡上select“Register for COM Interop”。 生成的DLL在编译该项目的机器上正常工作。 该DLL旨在对来自Excel的几个input数组执行一些繁重的处理,并返回一个输出数组。 我能够在VBA中添加对DLL的引用,并使用该function。 我无法弄清楚如何在其他机器上安装DLL。 我确保将.NET更新到部署机器上的当前版本。 然后我运行下面的batch file: C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ RegAsm.exe“C:\ Users \ Public \ DRAPERLibrary.dll”/ codebase /tlb:DRAPERLibrary.tlb RegAsm的这个调用返回没有错误。 我可以看到Windowsregistry有一些新的引用到这个DLL,但我看不到在Excel中的DLL。 如果我手动浏览到DLL它回来的错误“无法添加指定文件的引用”。 我在哪里错了? 什么是Visual Studio创build一个Excel引用? 有什么我可以添加到我的batch file导致Excel将此DLL识别为VBA中的可用引用吗? 非常感谢您花时间回复。

date从Excel表单中返回不正确

我有一些Excel数据表。 其中我有一个date栏。 当我读取date列的Excel工作表时,它会返回一个不正确的date(date格式月/日/年)。 以下是Excel工作表中date值的示例 01/01/2014 以及从C#中读取的date值 1/1/2014 但它正确地parsingdate2015年5 05/24/2015 。 所以当我TryParseExact它的有效date,它总是返回false。 有没有解决这个问题的好办法? 更新: if (!DateTime.TryParseExact(row["ColoumnNo"].ToString(), "MM/dd/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date)) <br> { //code }

添加列以dynamic导出CSV

我正在读取员工表的值并将其导出为CSV,如下所示: ID | Name | DOB | Address | City | State 1 Test 01/01/2000 xyz ab cd 现在我的要求是增加薪水这个。 我已经准备好可以用CSV导出的工资了。 输出将如下所示: ID | Name | DOB | Address | City | State | Jan,2015 | Feb, 2015 1 Test 01/01/2000 xyz ab cd 1000 2000 现在month-wise salary都会有新的logging。 就像4月份一样,3月份的工资也会增加。 如何根据从工资中提取的数据dynamic创build列?

C#Excel.Interop检测sorting操作

我已经查看了Excel.Interop库的各个级别(应用程序,工作簿和工作表),以了解如何检测用户sorting数据。 我创build了一个实例化应用程序,工作簿和工作表的类。 该程序有从另一个应用程序pipe道input的数据,然后将其添加到工作表。 我正在使用.NET 4.5,C#编译器版本4.0,并且已经使用Excel 2013进行testing,如果这有所帮助。 我可以检测单元格更改和计算事件,但是这些事件在列sorting时都不会触发。 我相信在阅读这篇文章后应该有所作为 。 在我失败之后,我查看了桌面更新事件,但是我没有运气。 我收到的错误是,“处理程序不存在于Microsoft.Office.Interop.Excel命名空间,你是否错过了一个程序集,我不认为这是我需要去的正确的方向,但我是试图看看它是否适合我的需求。 使用Excel Interop方法以外的任何其他方法可能会使我回到几个星期。 有关于表更新事件处理程序或可能sorting事件本身丢失的东西吗?

如何在.NET Interop.Excel.Workbooks.OpenText中指定编码

使用excel.Workbooks.OpenText方法打开文本文件时,我无法find任何有关指定编码(特别是utf-8)的可能性的信息。 我的问题是,我试图打开一个以UTF-8编码的CSV文件,如果没有这个设置,它会加载成一堆的小波。 非常感谢!

Excel COM加载项,自动完成和文档

我必须开发“ 东西 ”,为Excel提供function和function区。 例如,应该有一个连接到互联网的function,并返回一个地方的当前温度(这是一个参数)。 并且丝带中应该有一个button,它显示一个对话框(url等)。 我认为,最好的方法来完成这个,将是一个Excel插件。 我知道提供用户定义的函数有两种方法:一个XLL-Add-In和一个COM-Add-In。 XLL-Add-In有一个定义色带的非常难看的方法:我必须提供xml作为string。 这是非常重构的 – 不友好的。 这就是为什么我想使用COM-Add-In。 但是我在这里读到,一个COM-Add-In没有在Excel中自动完成我的UDF。 所以我想知道是否有办法,在xaml的代码和窗口中轻松,干净地创buildfunction区,并仍然有自动完成和excel文档。 这个线程让我想,这两个要求排除对方。 不过,我希望有办法做到这一点。 提前谢谢了。

需要澄清答案正确清理Excel互操作对象

关于Hans Passant对这个问题的回答… 用IDisposable清理Excel Interop对象 … 他启发我的事实,我不需要遵循两点规则…声明所有COM对象,所以我可以释放通过Marshal.ReleaseComObject时,他们完成。 所以现在我明白我可以在我的Excel代码之后调用GC.Collect和GC.WaitForPendingFinalizers,并且所有对象都会正确释放。 一个,我认为这是伟大的,将减less我写在C#中的macros的长度,但我习惯于释放对象,一旦我完成它们,以最大限度地减lessmacros运行时的内存使用情况。 我应该关心清理物体,还是像汉斯所build议的那样,在macros的末尾进行清理呢? 我通常使用巨大的文件,我的macros将创build许多COM对象来完成任务。

麻烦在ASP.Net中的“Microsoft.ACE.OLEDB.12.0”

我有两个应用程序使用Microsoft.ACE.OLEDB.12.0提供程序在同一台计算机上打开Excel文件。 一个例程是ac#编译的应用程序,工作正常..另一个是一个非编译的asp.net应用程序,使用vb代码,我们正在尝试重新托pipe,抛出“Microsoft.ACE.OLEDB.12.0”提供程序没有在本地机器上注册。 打开Excel文件时出现错误 – 这在我看来是假的,因为其他应用程序在同一台机器上运行良好。 我已经检查了两个应用程序池,他们似乎设置相同…他们都有32位检查,并使用相同的.Net框架版本。 他们两个web.config具有相同的连接string相同的选项(唯一的区别是连接的名称)..我们甚至重新安装了DLL。 我试图将该dll复制到aspnet应用程序的bin文件夹,但没有运气那里。 我会编译的asp.net应用程序,除了它的输出的一部分使用ColdFusion …我希望有人在那里已经遇到这个特定的问题,并可能有一些指针在哪里看来解决这个问题..或者也许是一个不同的方向?

如何使用C#中的单元格值设置Excel图表的位置?

我正在使用以下方法来创build和放置表格数据旁边的Excel图表。 下面的代码工作正常,但图表位置(高度)创build问题时,图表数量增加。 有单元格绘制图表的解决scheme吗? 或其他可能被我用来保持图表旁边的数据的东西。 我想逐页打印下面的方法的结果,因此要把它正确地放置。 下面是我的代码: Excel.Application xla = new Excel.Application(); int height=75; string uppercell = "B12"; int cell = 12; if (CheckBox1.Checked == true) { string table_name, chart_name; table_name = "Ration Table"; chart_name = "Ratio"; string st = ""; con.Open(); trying(ws, st, height, uppercell, cell, table_name, chart_name); con.Close(); cell = cell + 33; uppercell […]