Tag: office interop

我该如何处理“没有构造函数定义”和“types不能embedded”例外?

添加Excel 12参考(添加了Microsoft.Office.Interop.Excel和VBIDE DLLs)后,我从这里复制并粘贴代码,即: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Excel = Microsoft.Office.Interop.Excel; namespace WindowsFormsAppExcelTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void buttonCreateExcelFile_Click(object sender, EventArgs e) { Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue […]

在通用Windows应用程序或Window Store应用程序中创buildExcel文件

我正在学习使用Visual Studio 2015开发通用的Windows 10应用程序。我想实现一个函数来创build一个Excel文件,然后在这个Excel文件中写入数据,在我的应用程序中。 我尝试在C#中添加参考Microsoft.Office.Interop.Excel。 生成错误:缺less编译器所需的成员System.Runtime.InteropServices.LCIDConversionAttributesearch此错误,并findWindowsapp store应用程序不支持Microsoft.Office.Interop.Excel。 我无法创buildExcel文件。 我不想使用任何商业库(如syncfusion)。 如何在通用Windows应用程序或Window storeApp中创buildExcel文件? 请请告诉我任何解决办法。 谢谢

我怎样才能让Excel单元格“正确的大小”到他们的内容?

我希望使用C#填充的Excel电子表格单元展开或收缩,以便在不手动调整单元格宽度的情况下显示其所有内容 – 以“恰到好处”的宽度显示数据 – 不多不less。 我试过这个: _xlSheet = (MSExcel.Excel.Worksheet)_xlSheets.Item[1]; _xlSheet.Columns.AutoFit(); _xlSheet.Rows.AutoFit(); …但它在我当前的项目中没有做任何事情(在没有范围的小POC沙盒应用程序中工作正常)。 说到范围,这个不起作用的原因可能与我创build单元格区域有关,如下所示: var rowRngMemberName = _xlSheet.Range[_xlSheet.Cells[1, 1], _xlSheet.Cells[1, 6]]; rowRngMemberName.Merge(Type.Missing); rowRngMemberName.Font.Bold = true; rowRngMemberName.Font.Italic = true; rowRngMemberName.Font.Size = 20; rowRngMemberName.Value2 = shortName; …然后添加“正常”/通用单元格值。 换句话说,我具有跨越多列的值 – 几行。 然后在下面,我回到“一格一格”的模式。 这是问题吗? 如果是的话,我该如何解决呢? 是否可以有一个电子表格的独立部分的格式(自动assembly)不受表格的其他部分的影响? UPDATE 至于获得多行来容纳一个值,我使用这个代码: private void AddDescription(String desc) { int curDescriptionBottomRow = curDescriptionTopRow + 3; var […]

如何隐藏Excel中的行?

我有这个代码来隐藏某些行: private static readonly Double DISPLAYED_HIDDEN_CUTOFF_VAL = 0.01; private bool _hide; . . . _hide = racda.TotalItemPercentageOfItem < DISPLAYED_HIDDEN_CUTOFF_VAL; if (_hide) { var hiddenRange = _xlSheet.Range[_xlSheet.Cells[_curDescriptionTopRow, ITEMDESC_COL], _xlSheet.Cells[_curDescriptionTopRow, TOTALS_COL]]; hiddenRange.EntireRow.Hidden = true; } 代码到达时应该是,但它没有效果:这些行仍然可见。 我希望他们在电子表格上,但默认情况下不可见。 我怎么能做到这一点? UPDATE 这也没有工作: hiddenRange.Rows.Hidden = true; 实际上,这导致应用程序崩溃: hiddenRange.Hidden = true; 更新2 即使这些试图完成它的偷偷摸摸的方法也没有做任何事情: //hiddenRange.RowHeight = 0; <= did nothing hiddenRange.Rows.RowHeight = […]

C#/ WPF:通过行号和列号定义EXCEL范围

我已经试过了 如何使用VSTO / C#中的行号和列号来获取Excel范围? 但它抛出了一个未定义的COM例外 我想要的是(伪代码) Range myRange = new Range(new cell(1,1), cell(3,3)); 这样我就可以使用它(再次伪代码) ws.myRange.Interior.Color = XlRgbColor.rgbDarkGray; 谢谢

开发excel插件的最佳途径

我想为Excel 2016开发一个应用程序。我已经看到有两种开发方法: – 使用VSTO。 – 使用“应用程序的办公室” 我迷路了,我需要你的帮助。 开发Excel的应用程序/插件的最佳方法是什么? Thaks

C#Excel格式化多个单元格的颜色

你好,我尝试用不同的颜色格式化多个单元格。 所以当列表中有多个对象时,范围会改变。 这是我的代码: public void writeExcelFile(SPpowerPlant powerPlant, string sqlServer, string database) { //Path to template String tenplate = @"C:\Users\AAN\Documents\Visual Studio 2015\Projects\PowerPlants\Powerplants\bin\Debug\PROJEKTSTATUS_GESAMT_neues_Layout_template.xlsm"; //open Excel (programm) Excel.Application excelApplication = new Excel.Application(); #if DEBUG excelApplication.Visible = true; excelApplication.DisplayAlerts = true; #else excelApplication.Visible = false; excelApplication.DisplayAlerts = false; #endif //Open a Excel File Excel.Workbook excelWorkbook = excelApplication.Workbooks.Add(tenplate); Excel._Worksheet excelSheet […]

如何定义Excel单元格部分可见?

是否可以使用Excel互操作来定义一些可见的细胞部分? 我知道使用Application.ActiveWindow.VisibleRange我可以得到可见的工作表范围。 第46行的这个单元格包含在这个范围内,但是我们有一些方法可以定义单独的单元格吗? 我们的加载项将一些文本插入到单元格中。 我的任务是滚动一些选定的单元格,使其完全可见。 如果我在Excel中的这种单元格上双击,光标会出现在那里,表单滚动了一下,我想用C#代码做同样的事情。 到目前为止,我find了方法来定义用户与最后一行工作(通过使用Application.ActiveWindow.VisibleRange和滚动Application.ActiveWindow.SmallScroll ),但我不能保证最后一行总是部分可见 – 我不需要滚动完全可见的单元格。

当您不知道范围名称时,从VB.net写入Excel文件

我想使用行/列号而不是范围名称写入Excel。 我发现这样做的唯一方法是使用.Cells属性,但是当我尝试使用它时,我总是得到一个错误0x800A03EC。 我试图尽可能简化它,弄清楚如何使它工作。 下面的代码对“test1”起作用,当我试图编写“test2”时出现错误。 我正在运行excel 2016和W10上的最新版本的视觉工作室 Dim xlApp As New Excel.Application Dim xlWorkBook As Excel.Workbook Dim xlWorkSheet As Excel.Worksheet xlWorkBook = xlApp.Workbooks.Add xlApp.Visible = True xlWorkSheet = xlWorkBook.Sheets("Sheet1") With xlWorkSheet .Range("A1").Value = "test1" .Range(.Cells(8, 8)).Value = "test2" End With 有人可以帮我弄清楚如何解决这个问题,或者知道一个替代方法吗?

如何将Excel文件下载到用户的下载文件夹?

在C#,asp.net 4.0项目中,我使用Microsoft.Office.Interop.Excel创build了一个Excel文件。 该文件被正确创build并被放置在服务器上的文件夹中。 但是,我一直无法想出一个方法来显示文件到客户端。 有人能帮我吗? 一些背景:我正在尝试解决阻止Excel文件打开的Microsoft更改。 我们的Web应用程序使用Telerik网格,并使用ExportToExcel函数将该网格导出到Excel文件。 文件下载(进入用户的下载文件),但是当用户试图打开它,他们得到一个空白的Excel应用程序。 有解决方法,如卸载创build此问题的修补程序,closuresExcel安全选项,并单击文件属性中的解除阻止; 但是,我们的客户不想做任何这些。 所以我重写了40多个网格的出口。 我从radGrid中获取数据到数据表,并使用以下代码将其写入Excel: Microsoft.Office.Interop.Excel.Application m_objExcel = null; Microsoft.Office.Interop.Excel.Workbooks m_objBooks = null; Microsoft.Office.Interop.Excel._Workbook m_objBook = null; Microsoft.Office.Interop.Excel.Sheets m_objSheets = null; Microsoft.Office.Interop.Excel._Worksheet m_objSheet = null; object m_objOpt = System.Reflection.Missing.Value; m_objExcel = new Microsoft.Office.Interop.Excel.Application(); m_objBooks = (Microsoft.Office.Interop.Excel.Workbooks)m_objExcel.Workbooks; m_objBook = (Microsoft.Office.Interop.Excel._Workbook)(m_objBooks.Add(m_objOpt)); m_objSheets = (Microsoft.Office.Interop.Excel.Sheets)m_objBook.Worksheets; m_objSheet = (Microsoft.Office.Interop.Excel._Worksheet)(m_objSheets.get_Item(1)); int colcount = […]