Tag: .net

Excel加载项重点问题

我正在开发Microsoft Excel的加载项 。 我有一个button,为附加参数input创build一个表单 。 我希望用户能够select范围作为其中一个附加参数(如为图或公式select范围)。 重点是我无法find如何集中积极的工作表,而留下的forms。 我试图通过Excel.Worksheet activeSheet = Application.ActiveSheet的方式发送活动工作表的forms,然后在发生事件时将其激活,但是这不起作用。 我也尝试使用Show()方法将所有者发送到窗体,但对于加载项也是不正确的。 有一种简单的方法来停用窗体,select一个范围,然后再次激活窗体?

从Word中复制表格,然后使用VB.NET粘贴到Excel

我从Word复制表格,然后粘贴复制的表格在Excel文件中: tbl.Range.Copy() oSheet.Activate() rng = oSheet.Range("A1") rng.Activate() rng.PasteSpecial(Excel.XlPasteType.xlPasteAll) 但是当我这样做的时候,桌子被贴上了一张照片。

如何使用Open XML下载Excel文件之前?

我正在使用下面的代码来创build,它会向用户提示用户是否能够保存或打开或取消Excel文件….. 我成功地能够下载文件,但我需要压缩之前,它是显示用户提示,后来的zip文件将显示给用户喜欢与选项打开或保存或取消….. 我怎样才能不使用任何其他第三方库,并使用微软自己的Gzip DLL? 下面的代码是出口到Excelfunction: public ActionResult ExportToExcel() { byte[] file; string targetFilename = string.Format("{0}-{1}.xlsx", "Generated", "excel"); DataTable dt = common.CreateExcelFile.ListToDataTable(GetSearchDraftPRResults()); common.CreateExcelFile excelFileForExport = new CreateExcelFile(); file = excelFileForExport.CreateExcelDocumentAsStream(dt, targetFilename); Response.Buffer = true; return File(file, "application/vnd.ms-excel", targetFilename); } 任何人都可以请帮助这个如何压缩文件之前,它显示给用户? 提前谢谢了….. 修改代码: public ActionResult ExportToExcel() { byte[] file; string targetFilename = string.Format("{0}-{1}.xlsx", "Generated", "excel"); DataTable dt […]

Exceldynamic操作只能在同质AppDomain错误中执行

我工作的公司可以select为我们的主要产品创build插件。 我目前正在做一个插件。 该插件需要从Excel文件读入。 我的插件的一部分试图通过名字得到一个工作表: Excel.Application excelApp = new Excel.Application(); Excel.Workbook wb = excelApp.Workbooks.Open(fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); Excel.Worksheet ws = wb.Sheets[SheetName] as Excel.Worksheet; 当我作为一个独立的应用程序(我们的主要应用程序之外)运行上述代码工作正常。 但是,当我运行上面的代码作为我们的主要应用程序的插件,我得到以下的执行: dynamic operations can only be performed in homogenous appdomain 我做了一些研究,发现传统的安全策略是相关的。 由于其他原因,我不知道,不能改变我们的主要产品必须运行与传统的安全策略打开。 <NetFx40_LegacySecurityPolicy enabled="true"/> 不pipe这种情况,我们的客户还是希望添加这个function。 必须有一些方法来使Excelfunction正常工作。

列出客户机中的所有Excel加载项

问题: 我想列出安装在机器上的每个Excel版本的所有Excel加载项( 而不是COM加载项 )。 请给我一些线索或build议吗? 我做了什么 我试图从registry项中获取信息。 对于Office 2013,它在这里。 HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes下\安装\组件\ 72EFF0976DEDB96428D4154EFA5A5807 但对于Office 2007,它不在那里。 密钥的数据是: analys32.xll Data = Analysis ToolPak \提供用于统计和工程分析的数据分析工具 atpvbaen.xlam 数据=分析工具库 – 分析工具库的VBA \ VBA函数 eurotool.xlam 数据=欧元货币工具\欧元货币的转换和格式 solver.xlam Data = Solver Add-in \ Tool用于优化和方程求解 有没有办法实现这个没有硬编码每个Excel版本的组件GUID?

C#生成的Excel文件 – 问题与特殊的字符

首先,这是我的代码: DataTable usersReport = reportsService.GenerateUsersReport(); var grid = new GridView(); grid.DataSource = usersReport; grid.DataBind(); Response.ClearContent(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment; filename=UsersReport.xls"); Response.ContentType = "application/ms-excel"; Response.Charset = ""; StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); grid.RenderControl(htw); Response.Output.Write(sw.ToString()); Response.Flush(); Response.End(); 正如你所看到的,我只是简单地生成用户报告。 当我在excel中打开这个文件时,特殊的字符就会出现问题,比如ś,ż,ź,ó,ę,ą等等。 我可以看到ImiÄ™而不是ImiÄ™ 。 与GyżyÅ„ski相同的问题 我该如何解决? 编辑: 添加这些行: Response.Charset = ""; Response.ContentEncoding = System.Text.Encoding.Default; […]

部署一个DLL(COM对象)到Excel VBA参考

我开发了(VB.Net)VS2010中的一个DLL在Excel中使用(Windows 7 64位与32位Office 2010) 类库具有“使程序集COM可见”和“注册COM互操作”选中。 目标CPU使用.Net 4.0 Framework设置为x86。 当我在开发计算机上构build这个DLL时,可以在Excel vba中selectDLL作为参考,Excel将正确执行DLL。 当我试图将DLL部署到其他Window 7机器时,问题出现了。 我已成功(?)使用以下命令行注册DLL(作为pipe理员) C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe "C:\Program Files\CompanyName\XXX_DLL.dll" 但是DLL不会出现在Excel vba中作为参考select。 我在哪里犯了一个错误/我在做什么错了? 非常感谢。

用每个单元格的variables填充一个datagridview行

目前我能够导入我的Excel表格到DataGridView中。 但是,当我尝试基于不同的variables为该行的每一列添加一个全新的行,它不喜欢它。 我曾经希望使用 DataGridView1.Rows.Add(New String() {txt_id.Text, txt_name.Text, txt_modelnumber}) 但是,我收到一个错误,说:“附加信息:当控件是数据绑定时,不能以编程方式将行添加到DataGridView的行集合中。 我如何使它不是数据绑定? 还是有另一种方式来填充细胞? 我的import代码: Dim MyConnection As System.Data.OleDb.OleDbConnection Dim DtSet As System.Data.DataSet Dim MyCommand As System.Data.OleDb.OleDbDataAdapter MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\Users\Lenovo\Downloads\Test\exported.xls';Extended Properties=Excel 8.0;") MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Products$]", MyConnection) MyCommand.TableMappings.Add("Table", "Net-informations.com") DtSet = New System.Data.DataSet MyCommand.Fill(DtSet) DataGridView1.DataSource = DtSet.Tables(0) MyConnection.Close()

Excel 2013 C#互操作select范围不起作用

我将现有的C#程序从Excel 2003转换为Excel 2013(Office 365)。 它使用了excel interop界面。 该应用程序包含它自己的Interop.Excel.dll(v11.0.8161)的副本,即没有链接到安装在本地机器上的程序集。 它运行正常,因为它在安装了2013的计算机上,除了两种方法之外; Range.Select()和WorkBook.BreakLink()。 第一个抛出“select范围类失败的方法”和第二个“exception从HRESULT:0x800A03EC”exception。 用版本15.0.4641replaceinterop dll(来自Office 2013)没有任何区别,错误仍然存​​在。 代码片段如下: private Excel.Workbook NewWB; Excel.Worksheet lastSheet = (Excel.Worksheet)NewWB.Worksheets[NewWB.Worksheets.Count]; ((Excel.Range)lastSheet.Cells[1, 1]).Select(); Array links = NewWB.LinkSources(Excel.XlLinkType.xlLinkTypeExcelLinks) as Array; if (links != null) foreach (var l in links) NewWB.BreakLink((string)l, Excel.XlLinkType.xlLinkTypeExcelLinks); 有谁知道为什么只有这两种方法会失败,否则应用程序的工作; 它加载多个工作簿,提取特定的工作表,然后将它们合并到一个新的工作簿? 从Microsoft文档中,这些方法仍然像以前一样工作。

我无法使用epplus过滤date到生成excel的Month,Year,Date

我有一个看法,从中过滤数据并显示search结果,我将date格式更改为 convert(varchar(11),getdate(),113) 这是视图中的格式 在Excel中下载后,它只是给所有的date。 没有分组可用。 我尝试了几种格式来更改Excel中的date格式以及类似的代码 ews.Column(i).Style.Numberformat.Format = "d-mmm-yy"; 但没用。 我的查看返回date,如19 Mar 2014 我想要格式为19-Mar-2014的date分组 请给我一个工作答案。