Tag: interop

使用hex更改Excel单元格的背景颜色会导致Excel在电子表格中显示完全不同的颜色

所以我将Excel单元格的内部颜色设置为某个值,如下所示: worksheet.Cells[1, 1].Interior.Color = 0xF1DCDB; 但是,当我在Excel中打开电子表格时,发现出现的颜色完全不同(在上述情况下,生成的电子表格中的颜色为0xDCDCEF)。 我尝试了几种不同的颜色,它总是改变它,我没有看到一种模式。 这有什么理由吗? 我甚至尝试着写Color.FromArgb(241,220,219).ToArgb()来设置颜色,并且发生了同样的事情。

如何从Visual Studio C#使用Office?

在Visual Studio中添加Office的COM互操作的引用的技术是: 参考 添加参考 selectCOM选项卡 select“ Microsoft Office 11.0对象库” 神奇的命名参考出现: Microsoft.Office.Core Project.csproj文件显示引用的详细信息: <COMReference Include="Microsoft.Office.Core"> <Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid> <VersionMajor>2</VersionMajor> <VersionMinor>3</VersionMinor> <Lcid>0</Lcid> <WrapperTool>primary</WrapperTool> <Isolated>False</Isolated> </COMReference> 项目进入源代码控制,一切正常。 然后,使用Office 2007的开发人员将从源代码pipe理中获取该项目,并且无法构build它,因为此类引用不存在。 他(即我)检出.csproj文件,删除对的引用 Microsoft Office 11.0 Object Library 并重新添加COM引用 Microsoft Office 12.0 Object Library 而神奇的是一个命名参考出现: Microsoft.Office.Core Project.csproj文件显示引用的详细信息: <COMReference Include="Microsoft.Office.Core"> <Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid> <VersionMajor>2</VersionMajor> <VersionMinor>4</VersionMinor> <Lcid>0</Lcid> <WrapperTool>primary</WrapperTool> <Isolated>False</Isolated> </COMReference> 项目进入源代码控制,一切正常。 然后,使用Office 2003的开发人员从源代码​​pipe理中获取该项目,并且无法构build它,因为这样的引用不存在。 他(即不是我)检出.csproj文件,删除对的引用 Microsoft Office 12.0 […]

在C#中安全地configurationExcel互操作对象?

我正在一个winforms c#visual studio 2008应用程序。 该应用程序会谈excel文件,我正在使用Microsoft.Office.Interop.Excel; 去做这个。 我想知道如何确保即使有错误,对象也被释放? 这是我的代码: private void button1_Click(object sender, EventArgs e) { string myBigFile=""; OpenFileDialog openFileDialog1 = new OpenFileDialog(); DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog. if (result == DialogResult.OK) // Test result. myBigFile=openFileDialog1.FileName; Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; Excel.Range range; string str; int rCnt = 0; int cCnt = […]

如果未安装Excel,如何创buildExcel的实例

在我的C#应用​​程序,在Excel Interop DLL(作为参考)的帮助下,我正在阅读/写入Excel文件。 如果我把这个程序移动到没有安装office / excel的系统(想想干净的机器),我打错了。 System.Runtime.InteropServices.COMException(0x80040154):由于以下错误,检索具有CLSID {00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败:80040154类未注册(exception来自HRESULT:0x80040154(REGDB_E_CLASSNOTREG ))。 预计以上错误,因为目标机器上没有excel。 我的问题是,除了在目标机器上注册Interop dll之外,是否还有其他方法可以使用我的程序?

如何检查,以编程方式,如果MS Excel存在于电脑上?

我有一个需要MS Excel运行的应用程序,否则它崩溃。 所以我想检查并警告用户,以防Excel未安装在用户的机器上。 我该怎么做呢?

.Net Excel Interop删除工作表

我试图从一个.net c#3.5应用程序的Excel文档中使用interop Excel类(对于Excel 2003)删除一个工作表。 我尝试了很多东西: Worksheet worksheet = (Worksheet)workbook.Worksheets[1]; worksheet.Delete(); 这是行不通的,不会有任何错误…

如何使用Microsoft.Office.Interop.Excel从Excel导入到DataSet?

我想做的事 我试图使用Microsoft.Office.Interop.Excel命名空间来打开一个Excel文件(XSL或CSV,但不幸的是不是 XSLX),并将其导入到DataSet中。 我无法控制工作表或列名,所以我需要允许对它们进行更改。 我试过了 过去我已经尝试过这种OLEDB方法 ,并且有很多问题(bug,慢,并且需要事先了解Excel文件的模式),所以我想避免再这样做。 我想要做的是使用Microsoft.Office.Interop.Excel将工作簿直接导入到数据集,或循环通过工作表,并加载到DataTable中的每一个。 相信与否,我一直在寻找资源的麻烦。 在StackOverflow的一些search发现大多数人试图做相反(DataSet => Excel),或OLEDB技术。 Google没有太多帮助。 到目前为止我所拥有的 public void Load(string filename, Excel.XlFileFormat format = Excel.XlFileFormat.xlCSV) { app = new Excel.Application(); book = app.Workbooks.Open(Filename: filename, Format: format); DataSet ds = new DataSet(); foreach (Excel.Worksheet sheet in book.Sheets) { DataTable dt = new DataTable(sheet.Name); ds.Tables.Add(dt); //??? Fill dt from sheet […]

Microsoft.Office.Interop.Excel.ApplicationClass没有定义的构造函数

我试图按照如何在C#教程中打开一个Excel文件 ,即在Com选项卡上添加一个引用到Microsoft Office 14.0 Object Library并尝试编译代码: using Excel = Microsoft.Office.Interop.Excel; //… Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; xlApp = new Excel.ApplicationClass();//error here //… 并面临编译时的错误,说 没有为Microsoft.Office.Interop.Excel.ApplicationClasstypes定义构造函数。 我错过了什么?

C#Excel Interop – 调用Worksheet.ExportAsFixedFormat时禁止“发布”对话框

我正在使用Excel Interop打开一个xlsx文件并将其保存为pdf文档。 在调用“ExportAsFixedFileFormat”方法后,会显示一个标题为“发布”的对话框来表示进度。 我怎样才能压制或隐藏这个对话框? 我在其他论坛上看到了一些类似的问题,但没有一个令人满意的解决scheme,但希望有人从那以后解决了这个问题。 码: Application application = new Application(); application.DisplayAlerts = false; // <- No effect application.Visible = false; // <- No effect application.ScreenUpdating = false; // <- No effect application.UserControl = false; // <- No effect application.Workbooks.Open(path, Type.Missing, true); application.DisplayDocumentActionTaskPane = false; // <- No effect application.Worksheets[1].ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, path);

Excel互操作:_Worksheet或工作表?

我目前正在写关于dynamictypes,我给一个Excel互操作的例子。 我之前几乎没有做任何Office互操作,而且它显示。 C#4的MSDN Office Interop教程使用_Worksheet界面,但也有一个Worksheet界面。 我不知道有什么不同。 在我的荒谬简单的演示应用程序(如下所示)或者正常工作 – 但如果最好的做法决定一个或另一个,我宁愿使用它适当。 using System; using System.Linq; using Excel = Microsoft.Office.Interop.Excel; class DynamicExcel { static void Main() { var app = new Excel.Application { Visible = true }; app.Workbooks.Add(); // Can use Excel._Worksheet instead here. Which is better? Excel.Worksheet workSheet = app.ActiveSheet; Excel.Range start = workSheet.Cells[1, 1]; Excel.Range end […]