Tag: wpf

VSTO Excel加载项 – WPF XAML样式问题

我正在创buildVSTO Office Excel-Add-In,popup一个简单的WPF窗口。 这个窗口的样式与MahApps库。 问题是无论我使用哪种方法,图标在Visual Studio预览中显示正常,在debugging期间它们都丢失了。 负责显示图标的Icons.xaml安装在“资源”文件夹中,“生成”操作设置为“页面”。 有关这个问题的任何想法? <Controls:MetroWindow.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.AnimatedSingleRowTabControl.xaml" /> <ResourceDictionary Source="pack://application:,,,/ExcelAddIn;component/Resources/Icons.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Controls:MetroWindow.Resources> 我也试过,没有任何成功: <ResourceDictionary Source="/ExcelAddIn;component/Resources/Icons.xaml" /> <ResourceDictionary Source="pack://application:,,,/component/Resources/Icons.xaml" />

WPF比较两个数据表以find匹配的值

在这里input代码我有两个数据表中的一个数据表连接到sql server,另一个连接到oracle。 我正在运行查询语句,并完美地发现。 现在我需要写一些比较oracle中的“UNIT_NO”和sql中的“VehicleName”的东西。 是的,他们是相同的号码。 现在Oracle表中引入了6列,SQL引入了4列 一个例子是: VehicleName,VehicleGroupName,UserDefinedColumn2,UserDefinedColumn3 Unit_No,Unit_ID,Using_Dept,Status,Using_Dept_Desc, 我希望我的代码从Unit_NO和VehicleName中find匹配的数字,并将所有上述信息全部显示在一行中。 我在想LINQ,但我不能让它正确显示 This code combines the columns from both tables but pulls but does not add the any data in the rows any suggest or fixes private void GetSQLOraclelinqData() { var TstarData = GetTrackstarTruckData(); var M5Data = GetM5Data(); DataTable ComTable = new DataTable(); foreach (DataColumn OraColumn […]

“读取/显示Excel时,无法对空引用执行运行时绑定”

我准备了一个简单的代码来读取excel文件到c#wpf格式。 但我收到错误: {"Cannot perform runtime binding on a null reference"}. 下面是代码…. 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 WindowsFormsApplication9 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { […]

在c#中编辑一个现有的Excel文件。 收到COMException

所以,我在主窗口的同一个wpf应用程序中创build了一个Excel文件。 现在,我想编辑该文件,以便我可以添加另一个工作表并在其上放置一些数据。 该文件创build自己很好,并把所有必要的数据,但当我试图再次调用一个COMExcpetion来说,它无法find该文件,但文件是有! 我认为这不是什么市长,但非常感谢你的帮助! 这里是代码: private void Nextday_Click(object sender, RoutedEventArgs e) { Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); xlApp.Visible = true; Workbook wb = xlApp.Workbooks.Open(@"C:Users\Public\Documents\Report.xls"); Worksheet ws2 = (Worksheet)wb.Worksheets[2]; ws2.Name = "Part Function"; object misValue = System.Reflection.Missing.Value; int i = 1; ws2.Cells[i, 1] = "Part Function Auto"; i++; ws2.Cells[i, 1] = "Problem Reported in TestID#:"; i++; […]

从Excel启动WPF无模式对话框

我想从Excel中启动一个自定义的查找和replace无模式WPF对话框。 我能够启动一个WPF窗口作为非modal dialog,并使用WindowInteropHelper将Excel分配为对话框的父项。 我面临的问题是,如果我在对话框文本框中input文本,它将进入Excel中的活动单元格。 我发现解决scheme中的这个问题的链接“ 从MS Excel加载项的WPF无模式对话框 ” 链接build议为对话创build单独的线程。 如果我这样做,那么当焦点在对话框中时,Excel不会在工作表中显示select。 我想要模仿Excel查找和replace对话框的行为,即焦点在“Excel查找和replace”对话框中,应该显示工作表中的select。 如果我没有使用单独的线程来创buildWPF对话框(在主线程中创build对话框),我可以按照预期的方式来实现select行为,但是键盘input不会反映在对话框中。 请帮助我解决无模式WPF对话框的键盘input问题,而不使用单独的线程来创build对话框。 使用C#.Net 4.0 提前致谢。

C#/ WPF:将string中的HTML呈现到WPF控件上

我正在编写一个程序来显示使用网格Excel工作表的内容。 为此,我使用Office Interop将这个工作表作为一个充满XML的大string来检索,如下所示: // Get the cells Range from Excel: Range rng = sheet.get_Range(Cell(row1, col1), Cell(row2, col2)); // Get the XML representing that Range: return rng.get_Value(XlRangeValueDataType.xlRangeValueXMLSpreadsheet); 我可以从这个XMLstring创build一个FlowDocument,如果我将它分配给我的GUI上的控件,那么该控件将呈现XML,使其看起来完全像Excel显示。 但是我将范围中的所有单元格渲染到单个控件上,这不是我想要的:我希望能够将任何给定的单元格渲染到任何给定的控件上。 我无法find一个快速,优雅的方法来通过Interop为单个单元格提取XML:它只需要一个星期的时间。 于是我花了一整天的时间编写一个类,把大的XMLstringparsing成一个代表一个单元格的XML片段数组。 该数组中的string如下所示: <Cell><ss:Data ss:Type="String" xmlns="http://www.w3.org/TR/REC-html40"><Font html:Color="#000000">Some random text with </Font><B><Font html:Color="#000000">some bold characters</Font></B><Font html:Color="#000000">, and so on and so forth</Font></ss:Data></Cell> 这实际上是HTML:从Visual Studio的debugging器我可以使用HTML查看器,它会告诉我这个: 一些粗体字符的随机文本,等等等等 顺便说一下,一旦我粘贴,Stack Overflow网站就会正确地显示这条线。 所以我感到非常自信,现在我可以用编程的方式为每个Excel单元格创buildFlowDocument对象,将它们分配给我的GUI控件,并且在任何我喜欢编程的布局中都能很好地呈现我的Excel单元格。 […]

最简单的方法来修改文档“模板”,并通过WPF打印?

情况 我有一个WPF程序,我想打印使用一些数据的几个文件。 目前,这些文档以Excel电子表格和Word文档的forms存在。 我曾经尝试过 打开XPS文件(保存为XPS从Excel)作为一个zip文件,并拉出页面(它只包含一个页面),并把它打到一个网格的窗口,只是为了一个testing。 我的天啊!! 无法find的资源和红色在每个地方都变得squ亮。 在XPS中指定的字体表示在一个WPF似乎不喜欢的odttf文件中。 将它重命名为.ttf似乎不起作用。 布局正确,网格线不对,所以是有希望的。 我真的不想做什么 手动重build文件为stream程文档,XPS或其他XAML对象。 Excel Spreadsheet文档的布局非常相关。 Word文档并不是那么糟糕。 所以我真的只需要知道:从我正在使用的两个input(Word文档,Excel电子表格),我怎样才能最好的将这些格式,我可以很容易地从WPF打印。 目前,我有一些代码片段,可以让我打开Excel,打开电子表格,将数据放入指定的单元格,打印,发出closures命令,检查程序卸载并在必要时将其杀死。 我不想再这样做了。 这是混乱,可以是越野车,以及要求安装Office Interop程序集和其他东西。

在WPF DataGrid中select像Excel一样的矩形

这个问题类似于Excel中的Wpf itemscontrol中的拖动select ,但我想在DataGrid中,而不是一个ListBox。 我正在尝试使WPF DataGrid中的select矩形看起来像Excel一样,包括较低RHangular处的小黑色方块,并且没有每个单独选定单元格的边框。 任何人都可以在WPF DataGrid中有一个这样的工作示例?

Excel应用程序单例 – 只使用一个Excel应用程序实例而不退出的可能威胁?

我正在使用Excel进行报告的WPF应用程序。 每当我需要Excel应用程序实例生成新报表时,需要花费太多时间来打开新的Excel应用程序。 为什么不保留一个Excel应用程序实例作为一个单例打开只为我的应用程序? 当我的应用程序closures时退出此Excel单身人士? 我认为,Excel应用程序实例保持打开的风险很小。 或者这样做有没有隐藏的威胁? 我的代码: private static Microsoft.Office.Interop.Excel.Application _ExcelApp = null; public static Microsoft.Office.Interop.Excel.Application ExcelApp { get { return _ExcelApp; } private set { _ExcelApp = value; } } public static void QuitExcel() { if (ExcelReports.ExcelApp != null) { ExcelReports.ExcelApp.Quit(); ExcelReports.ExcelApp = null; } } public static void StartExcel() { try { ExcelReports.ExcelApp […]

我可以通过剪贴板将一个对象传递给Excel AddIn吗?

我有2个应用程序:一个基于WPF DataGrid,另一个是Excel AddIn。 我的目标是通过剪贴板将数据从前者传递给后者。 我没有问题复制制表符分隔,cuadriculated数据到常规的Excel“粘贴”操作。 另外,我实施了我自己的“智能粘贴”。 当我决定复制+粘贴更复杂的对象时,我的麻烦就开始了。 我把所有的类标记为[Serializable],并有一个方法确保对象可以被序列化。 事实上,整个操作完美的提供了粘贴的应用程序不是Excel的AddIn。 传递的对象是一个名为Engineering.Export.Exported的类。 正如我们所看到的,剪贴板看起来很好: 见3条相关的陈述。 它们在两种应用中都是相同的。 最后的分配只在我需要的应用程序中失败。 我已经尝试了很多组合,例如GetData(“ExportFormat”),但结果是一样的。 任何提示,build议都非常受欢迎。 TIA 加成: 我准备了一个超简单的对象: namespace Engineering { [Serializable] public class SimpleStuff { public string Greetings; public int GraduationYear; public bool Available; } } 问题仍然存在:我可以将它导出到除 VSTO AddIn 之外的任何应用程序中。 最后一条语句总是在AddIns中返回null。