我正在使用Excel Interop库来获取工作表并替换工作表中的值。我的工作表结构如下:
AE列包含处理FL列中数据的公式,当我更新工作表时,我清除了FL中的内容并将任何公式保留在AE中。然后,我用新数据填充FL列。
我需要在AE列(任何行)中使用我的公式来扩展到我输入的新数据的整个范围。
例如,如果我将数据从8扩展到20行,=sum(G1,G8)应该会变成=sum(G1,G20)表格。有没有办法获取工作表中的所有当前公式?如何扩展公式的范围?
我一直在尝试以下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) 我正在使用Microsoft Office Interop打开Excel文件.该文件放在一个特殊的文件夹中,Workbook代码从该文件夹中读取文件.现在,要求是Excel文件可以放在任何地方.我认为最好的方法是将Excel文件作为嵌入式资源附加.但如果我作为嵌入式资源附加,我将如何使用Excel工作簿读取该文件.
_excelapplication.Workbooks.Open(Filename: pExcelTemplatePath);
Run Code Online (Sandbox Code Playgroud)
无论文件的位置如何,读取Excel模板文件的最佳方法是什么?
我使用 VSTO 创建了一个 Excel 2010 AddIn。我有一个工作正常的上下文菜单,但是当我切换到 Excel 视图“分页预览”时,我的右键单击上下文菜单不再显示。我需要为分页模式定义不同的 idMso 部分吗?
我目前正在使用:
<contextMenu idMso="ContextMenuCell">
<!--buttons here-->
</contextMenu>
Run Code Online (Sandbox Code Playgroud) 我想在创建之前检查表格是否存在.谢谢你提前
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对象,例如:(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) 我有一个运行 Windows 服务Excel Interop以自动执行各种宏。但是,当我尝试运行使用 Windows 身份验证访问数据库的宏时,我遇到了一个奇怪的问题......
如果宏通过 Windows 服务运行,则打开工作簿并启动宏执行但应用程序挂起(大概在数据访问部分)。
但是,如果宏通过 Visual Studio 调试器运行,使用与服务相同的实现(它们调用相同的类库),它会执行,保存工作簿,并按预期关闭。
我确定这与模拟有关,但我似乎无法弄清楚。我在我的用户下运行了 Windows 服务,我还修改了组件服务中的默认 COM 属性,Impersonate而不是默认的Identify.
任何帮助将不胜感激,因为最好作为 Windows 服务而不是控制台应用程序运行。
我正在将 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 …
如何将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) 我从这个答案中获取了以下工作代码:
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) excel-interop ×10
c# ×8
excel ×5
com ×2
vb.net ×2
.net ×1
excel-2010 ×1
exception ×1
resources ×1
vba ×1
vsto ×1
windows-8.1 ×1