标签: excel-interop

Excel互操作和公式范围

我正在使用Excel Interop库来获取工作表并替换工作表中的值。我的工作表结构如下:

AE列包含处理FL列中数据的公式,当我更新工作表时,我清除了FL中的内容并将任何公式保留在AE中。然后,我用新数据填充FL列。

我需要在AE列(任何行)中使用我的公式来扩展到我输入的新数据的整个范围。

例如,如果我将数据从8扩展到20行,=sum(G1,G8)应该会变成=sum(G1,G20)表格。有没有办法获取工作表中的所有当前公式?如何扩展公式的范围?

c# excel-interop excel-2010

3
推荐指数
1
解决办法
2万
查看次数

从word文件中提取图像

我一直在尝试以下C#代码从doc文件中提取图像,但它不起作用:

object missing = System.Reflection.Missing.Value;            
            Microsoft.Office.Interop.Word.Application oWord = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word.Document oDoc = new Microsoft.Office.Interop.Word.Document();
            oWord.Visible = false;
            object str1 = "C:\\doc.doc";
            oDoc = oWord.Documents.Open(ref str1, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

            if (oDoc.InlineShapes.Count > 0)            {


                for (int j = 0; j < oDoc.InlineShapes.Count; j++)
                {  

                    oWord.ActiveDocument.Select();
                    oDoc.ActiveWindow.Selection.CopyAsPicture();

                    IDataObject data = Clipboard.GetDataObject();                    

                    if (data.GetDataPresent(typeof(System.Drawing.Bitmap)))
                    { …
Run Code Online (Sandbox Code Playgroud)

c# excel-interop

3
推荐指数
2
解决办法
1万
查看次数

使用嵌入式资源打开Excel工作簿文件

我正在使用Microsoft Office Interop打开Excel文件.该文件放在一个特殊的文件夹中,Workbook代码从该文件夹中读取文件.现在,要求是Excel文件可以放在任何地方.我认为最好的方法是将Excel文件作为嵌入式资源附加.但如果我作为嵌入式资源附加,我将如何使用Excel工作簿读取该文件.

_excelapplication.Workbooks.Open(Filename: pExcelTemplatePath);
Run Code Online (Sandbox Code Playgroud)

无论文件的位置如何,读取Excel模板文件的最佳方法是什么?

c# excel resources embedded-resource excel-interop

3
推荐指数
1
解决办法
5994
查看次数

“分页预览”视图模式下的 Excel VSTO 加载项和上下文菜单 idMso

我使用 VSTO 创建了一个 Excel 2010 AddIn。我有一个工作正常的上下文菜单,但是当我切换到 Excel 视图“分页预览”时,我的右键单击上下文菜单不再显示。我需要为分页模式定义不同的 idMso 部分吗?

我目前正在使用:

    <contextMenu idMso="ContextMenuCell">
        <!--buttons here-->
    </contextMenu>
Run Code Online (Sandbox Code Playgroud)

c# vsto visual-studio-2010 excel-interop

3
推荐指数
1
解决办法
934
查看次数

如何检查Interop中是否已存在工作表

我想在创建之前检查表格是否存在.谢谢你提前

using Excel = Microsoft.Office.Interop.Excel;

Excel.Application excel = new Excel.Application();
excel.Visible = true;
Excel.Workbook wb = excel.Workbooks.Open(@"C:\"Example".xlsx");


Excel.Worksheet sh = wb.Sheets.Add();
int count = wb.Sheets.Count;

sh.Name = "Example";
sh.Cells[1, "A"].Value2 = "Example";
sh.Cells[1, "B"].Value2 = "Example"
wb.Close(true);
excel.Quit();
Run Code Online (Sandbox Code Playgroud)

c# excel excel-interop

3
推荐指数
3
解决办法
3万
查看次数

C#使用Excel进程销毁多个Excel对象的正确方法

我有一个C#控制台程序.运行时,它会实例化一些Excel对象,例如:(openExcelO).

当程序运行完毕后,我有一个关闭Excel(closeExcel)的方法,它应该正确地清理Excel进程.在任务管理器中,我可以看到剩余的Excel残余.关闭例程从互联网示例拼凑而成:

    private void openExcelO (string dir) {

        try {
            xlApp = new Excel.Application();
            xlWorkBook = xlApp.Workbooks.Open(dir + "PortfolioOptimization5.xlsm",
                0, false, 5, "", "", true, 
                Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, 
                "\t", false, false, 0, true, 1, 0);
            xlMarkowitz = (Excel.Worksheet)xlWorkBook.Sheets["Markowitz"];
            xlWeights = (Excel.Worksheet)xlWorkBook.Sheets["Weights"];

        } catch (Exception ex) {
            ReportError("PortfolioOptimization", "openExcel", ex.ToString());
        }

    }


    private void closeExcel () {
        object misValue = System.Reflection.Missing.Value;
        try {

            if (xlWeights != null) releaseObject(xlWeights);
            if (xlMarkowitz != null) releaseObject(xlMarkowitz);

            xlWorkBook.Close(false, misValue, misValue);
            if (xlApp != null) xlApp.Quit();

            if (xlWorkBook …
Run Code Online (Sandbox Code Playgroud)

c# com excel excel-interop

3
推荐指数
1
解决办法
2903
查看次数

Excel 自动化 Windows 服务

我有一个运行 Windows 服务Excel Interop以自动执行各种宏。但是,当我尝试运行使用 Windows 身份验证访问数据库的宏时,我遇到了一个奇怪的问题......

如果宏通过 Windows 服务运行,则打开工作簿并启动宏执行但应用程序挂起(大概在数据访问部分)。

但是,如果宏通过 Visual Studio 调试器运行,使用与服务相同的实现(它们调用相同的类库),它会执行,保存工作簿,并按预期关闭。

我确定这与模拟有关,但我似乎无法弄清楚。我在我的用户下运行了 Windows 服务,我还修改了组件服务中的默认 COM 属性,Impersonate而不是默认的Identify.

任何帮助将不胜感激,因为最好作为 Windows 服务而不是控制台应用程序运行。

c# excel windows-services office-interop excel-interop

3
推荐指数
1
解决办法
3067
查看次数

修复 .NET 应用程序中的并行错误

我正在将 C# 程序从 Visual Studio 2010 移植到 Visual Studio 2013。两者都是 IDE 的 Express 版本。在 2013 年的构建中,我遇到了并行失败。

The application has failed to start because its side-by-side configuration is incorrect.

sxstrace.exe工具不提供我能够有用解释的任何信息。这是该工具的人类可读输出。

开始激活上下文生成。

输入参数:

标志 = 0

处理器架构 = AMD64

CultureFallBacks = en-GB;en;en-US

ManifestPath = C:\Users\Brian\Documents\Visual Studio 2013\Projects\WebInterface1\WebInterface1\bin\Debug\WebInterface1.exe

AssemblyDirectory = C:\Users\Brian\Documents\Visual Studio 2013\Projects\WebInterface1\WebInterface1\bin\Debug\

应用程序配置文件 = C:\Users\Brian\Documents\Visual Studio 2013\Projects\WebInterface1\WebInterface1\bin\Debug\WebInterface1.exe.Config


信息:解析应用程序配置文件 C:\Users\Brian\Documents\Visual Studio 2013\Projects\WebInterface1\WebInterface1\bin\Debug\WebInterface1.exe.Config。

错误:激活上下文生成失败。

结束激活上下文生成。

由于信息很少,我怀疑问题可能与 Interop 相关,因此我进行了一些实验,但没有一个能解决问题。

该应用程序与 Excel 互操作,最初Excel 2003来自Office 2003 Professional. 由于Office 2003 Professional …

.net c# excel-interop visual-studio-2013 windows-8.1

3
推荐指数
1
解决办法
6249
查看次数

使用 Office.Interop.Excel 将文件另存为 PDF/A

如何将Excel电子表格导出为 PDF/ A (ISO 19005-1)?

编辑:我要求 PDF/A,而不是普通的旧 PDF 1.5,因为它默认导出。我什至在我原来的问题中强调了A。

我已经可以使用该ExportAsFixedFormat()功能将 Word 和 PowerPoint 文档导出为 PDF/A,因为 Word 和 PowerPoint 功能都有一个可选UseISO19005_1参数,但 Excel 版本非常不同,并且缺少很多参数。

我似乎找不到任何使用 COM Interop导出 PDF/ A 的方法。

这是我用来从 docx 导出的代码:

Dim ExportFormat As WdExportFormat = WdExportFormat.wdExportFormatPDF
Dim OpenAfterExport As Boolean = False
Dim OptimizeFor As WdExportOptimizeFor = WdExportOptimizeFor.wdExportOptimizeForPrint
Dim Range As WdExportRange = WdExportRange.wdExportAllDocument
Dim Item As WdExportItem = WdExportItem.wdExportDocumentWithMarkup
Dim IncludeDocProps As Boolean = True
Dim KeepIRM As Boolean …
Run Code Online (Sandbox Code Playgroud)

vb.net vba office-interop excel-interop

3
推荐指数
1
解决办法
3739
查看次数

使用 VB.NET 获取正在运行的 Excel 实例

我从这个答案中获取了以下工作代码:

Option Compare Binary
Option Explicit On
Option Infer On
Option Strict Off

Imports Microsoft.Office.Interop
Imports System.Collections.Generic
Imports System.Runtime.InteropServices

Friend Module Module1
    Private Declare Function GetDesktopWindow Lib "user32" () As IntPtr
    Private Declare Function EnumChildWindows Lib "user32.dll" (ByVal WindowHandle As IntPtr, ByVal Callback As EnumWindowsProc, ByVal lParam As IntPtr) As Boolean
    Private Declare Function GetClassName Lib "user32.dll" Alias "GetClassNameA" (ByVal hWnd As IntPtr, ByVal lpClassName As String, ByVal nMaxCount As Integer) As Integer
    Private Delegate Function EnumWindowsProc(ByVal hwnd As …
Run Code Online (Sandbox Code Playgroud)

vb.net com excel exception excel-interop

3
推荐指数
1
解决办法
7430
查看次数