我可以打开和写入excel文件,但是当我尝试通过向其传递路径来保存文件时,保存操作会提示"保存"对话框.我希望它能够在指定的路径上保存文件
代码如下:
excelApp.Save(exportToDirectory);
excelApp.Quit();
Run Code Online (Sandbox Code Playgroud)
其中,exportToDirectory是:"C:\ files\strings.xlsx".
PS:我已经检查了excel版本和类似的问题.
谢谢
任何人都可以告诉我如何使用.NET中的Office Interop(c#)将Excel(2007或更高版本)中的超链接从一个工作表中的单元格添加到另一个工作表中的单元格
例如:从Sheet1 Cell A1到Sheet2 Cell B10的超链接
我正在使用C#和Microsoft.Office.Interop阅读Excel工作表数据.工作表包含一些日期值.当我试图读取该值时,它只是给出了数字(可能是TimeSpan).我在将此数字转换为DateTime时遇到问题.
以下是代码:
TimeSpan ts = TimeSpan.Parse(((Range)ws.Cells[4, 1]).Value2.ToString());
Run Code Online (Sandbox Code Playgroud)
哪里ws
是Excel.WorkSheet
.
任何人都可以解释我应该如何将这个数字(TimeSpan
)转换成DateTime
?
感谢您分享宝贵的时间.
我正在使用C#中的microsoft.interop.excel库构建报告.
我有这样的事情:
Range rangeTarget;
.
.
.
rangeTarget = worksheet.get_Range("C" + row, "N" + row);
Run Code Online (Sandbox Code Playgroud)
我希望范围显示其值作为整数,即没有小数位.我尝试过rangeTarge.AutoFormat,但不知道如何使用它.
有任何想法吗 ?
谢谢.
我之前安装过VS11测试版,并且我的Visual Studio 2010实例存在一些问题,您可以在此处看到它们是如何解决的:Excel AddIn Click Once deployment问题.
现在我有一个编译/构建vsto的代码库,它安装得很好并且在Excel 2010中运行良好.但是,当我从Excel中删除已安装的版本并尝试直接通过Visual Studio 2010运行它时,AddIn无法获得在调试配置模式下运行时加载到Excel中,在发布配置模式下,它可以正常工作.有关为何可能发生这种情况的任何想法?我已经尝试通过Com AddIns重新启用它,以及其他一些没有运气的东西.
我的项目中有以下C#函数,它应该打开并返回一个现有的Excel工作簿对象:
Application _excelApp;
// ...
private Workbook OpenXL(string path, string filename)
{
try
{
if (_excelApp == null)
{
_excelApp = new Application();
}
Workbook workBook = _excelApp.Workbooks.Open(path + filename, // Name
0, // Do not update links
true); // Open read-only
return workBook;
}
catch (Exception e)
{
_excelApp = null;
throw new ArgumentException("Error opening " + path + filename, e);
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我用"C:\"和"scratch.xlsx"运行它时,Open()调用会抛出以下错误:
Microsoft Excel cannot access the file 'C:\scratch.xlsx'. There are several possible reasons:
• The file …
Run Code Online (Sandbox Code Playgroud) 我有一个处理excel的应用程序.最近我遇到了Excel对象创建速度非常慢的问题.
我用这个简单的代码重新创建了这个问题:
Microsoft.Office.Interop.Excel.Application xlApp;
xlApp = new Microsoft.Office.Interop.Excel.Application();
Run Code Online (Sandbox Code Playgroud)
第二行导致延迟.
为了测量新对象分配所需的时间,上面的代码已经扩展了时间跟踪解决方案,结果是确凿的.在NORMAL情况下,上面的代码在0.5秒内执行,而在FAULTY-BEHAVIOR的情况下,它可能需要长达5分钟.
没有内存泄漏,并且正确释放了excel对象.我的解决方案全年24/7运行,没有任何问题.我不确定它是否重要但是应用程序在20个单独的用户会话(服务器机器)上运行.因此,此应用程序有20个副本同时运行,可能会导致同时运行20个Excel副本.
这个问题第一次在2个月前被注意到,并且已通过升级办公室(2010年 - > 2013年)得到解决.这次我有更多时间进行调查,遗憾的是结果并不乐观.
事实:
主要问题:
外部内容
编辑 - 附加测试
PowerPoint构造函数不受延迟的影响
ppApp = new Microsoft.Office.Interop.PowerPoint.Application();
Run Code Online (Sandbox Code Playgroud) 我有一个C#WPF(.NET 4.0)应用程序,它使用Excel互操作从Excel文件中读取数据.
当我在具有Excel 2007的开发机器上运行此应用程序时,它工作正常.当我在另一台安装了Excel 2010的计算机上运行它时,它失败并显示以下错误消息:
System.Runtime.InteropServices.COMException(0x80040154):由于以下错误,检索CLSID为{00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败:80040154未注册类(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG) )).
尝试创建Microsoft.Office.Interop.Excel.Application
对象时发生故障,如:
var app = new Application();
Run Code Online (Sandbox Code Playgroud)
我的项目引用了Microsoft.Office.Interop.Excel.dll
(版本14.0.0.0,运行时版本v2.0.50727),它位于:
用于Office\PIA\Office14\Microsoft.Office.Interop.Excel.dll的C:\ Program Files\Microsoft Visual Studio 10.0\Visual Studio工具
我尝试使用引用的dll上的默认设置运行应用程序:
我还尝试在引用的dll上使用以下设置运行应用程序:
但是在使用Office 2010的计算机上,这些尝试都没有奏效.
其他说明:Office 2010的计算机是64位w/Windows 7.我的开发计算机是带有Windows XP的X86.
题
是什么导致"类未注册"异常,我该如何解决?
编辑
为了回应Alex的回答,我尝试将应用程序构建为任何CPU,X86和X64,但它没有任何区别.我仍然得到相同的"类未注册"错误.
编辑2
刚刚使用Office 2010在32位计算机上试用过该应用程序.没有错误.因此,特定机器可能出现问题,或者可能是64位和Office 2010的组合.
编辑3
好的,现在我已经在Office 2010的另一台64位计算机上测试了它.再次没有错误.我认为这意味着特定机器出了问题,这不是我软件的错.啊编程.
我正在使用Microsoft Interop来读取数据.
在excel-sheet中,列名称类似于A,B,C,D,....,AA,AB,....等等.有没有办法阅读这个列名?
如果您需要任何其他信息,请告诉我.
此致,Priyank
当我的C#程序将数据连续写入Excel电子表格时,如果最终用户单击右上方菜单并打开Excel选项窗口,则会导致带有HRESULT的System.Runtime.InteropServices.COMException:0x800AC472中断数据被写入到电子表格.
理想情况下,应允许用户执行此操作而不会导致异常.
我发现这个错误代码的唯一解决方案是循环并等待,直到异常消失: HRESULT的异常:0x800AC472 有效地挂起应用程序,数据没有写入Excel,用户对问题一无所知.
我想在写入时禁用Excel的主菜单,但找不到如何执行此操作的参考.
我的应用程序支持Excel 2000到2013.
以下是如何重现该问题:
使用Visual Studio Express 2013 for Windows Desktop,.NET 4.5.1在Windows 7 64位上使用Excel 2007.
创建一个新的Visual C#控制台应用程序项目.
添加对"Microsoft ExceL 12.0对象库"(对于Excel)和"System.Windows.Forms"(对于messagebox)的引用.
这是完整的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading.Tasks;
using System.Threading; // for sleep
using System.IO;
using System.Runtime.InteropServices;
using System.Reflection;
using Microsoft.Win32;
using Excel = Microsoft.Office.Interop.Excel;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int i = 3; // there is a split pane at row two
Excel.Application …
Run Code Online (Sandbox Code Playgroud) excel-interop ×10
c# ×9
excel ×5
.net ×1
com ×1
datetime ×1
dll ×1
formatting ×1
interop ×1
vsto ×1