Tag: winforms

自动比较excel工作簿

我有两个最近从一个旧types的数据库摘录,这是相当大的,有超过五十列。 我有他们在Excel电子表格格式。 在Excel中使用某种forms的macros可以比较两个工作簿并自动突出显示任何差异,这是一个可以想象的想法吗? 如果没有,创build一个winform在C#中做同样的事情是一个可行的想法? 澄清:我应该提到,我们的电子表格中的数据包含: 带符号的参考号码 地址 整型 双打 大的string,使得它们必须在MS Access中被归类为“备忘录”字段 我还应该注意到,我没有访问Office 2013或365,并且不能使用内置的电子表格比较工具。

Winformsselect文件名保存文件

我有一些数据,我想出口到Excel。 我做了所有的代码,一切工作正常,现在我想将该文件保存到硬盘驱动器。 我也可以这样做。 但我的问题是,我不知道如何让客户设置他/她自己的文件名。 我曾经尝试过: FolderBrowserDialog brwsr = new FolderBrowserDialog(); //Check to see if the user clicked the cancel button if (brwsr.ShowDialog() == DialogResult.Cancel) return; else { string newDirectoryPath = brwsr.SelectedPath; //Do whatever with the new path } 该方法的问题在于允许用户select要将文件保存到的文件夹。 我想让所有的用户指定path和文件名。 任何想法帮助认罪? 非常感谢

date计算错误

我有一个简单的代码,将月份的date(DD/MM/YYYY)为Excel的Column : DateTime date = new DateTime(int.Parse(year.Text), int.Parse(month.Text), 1); //year.Text & month.Text are just the month and year from controls in the form. for (int j = 7; j < daysInMonth + 7; j++) { sheet.get_Range("A" + j).Value = date.ToShortDateString(); date.AddDays(1.0); } 其结果是: 2015年1月1日 2015年1月2日 2015年1月3日 2015年1月4日 2015年1月5日 2015年1月6日 2015年1月7日 2015年1月8日 2015年1月9日 2015年1月10日 2015年1月11日 2015年1月12日 […]

从WinForm获取数据到Excel

好的,所以我有一个表格,填写客户地址,购买信息等等。现在,我想把这些数据导入到Excel中,每列产品的数量,人名,他们的名字电子邮件等。每个客户将有自己的行。 我的程序是用C#编写的,它是一个winform。 现在,我是一个初学者,我只把数据放入ListBox之前。 将ListBox转换为Excel很容易吗?还是有更好的方法来解决这个问题?

C# – 互操作excel

我想填写窗体的数据,以优秀。 代码的结尾,我给了validation,所以如果文件名存在于特定的位置,它不会再保存它 string savingNewForm = "C:\\temp\\" + temp; if (File.Exists(savingNewForm)) { MessageBox.Show("File already exist!"); oBook.Close(); oApp.Quit(); } else { oBook.SaveAs(savingNewForm); oBook.Close(); oApp.Quit(); MessageBox.Show("Your file saved"); } 但是当用户保存相同的文件名时会出错。 我认为主要的问题是, if (File.Exists(savingNewForm))导致它不检查文件名是否存在,而是去else并给出一个popupExcel问,如果我想要replace或不。

Winforms DataTable转换为Excel

在asp.net中,将数据表转换为excel文件非常容易。 如何在winform中为数据表做同样的事情? 例如:在我的asp.net代码中,这里是我的函数将数据表转换为excel: Public Shared Sub DataTableToExcel(ByVal dt As DataTable, ByVal FileName As String HttpContext.Current.Response.Clear() HttpContext.Current.Response.Write(Environment.NewLine) For Each row As DataRow In dt.Rows For i As Integer = 0 To dt.Columns.Count – 1 HttpContext.Current.Response.Write(row(i).ToString().Replace(";", String.Empty) + ";") Next HttpContext.Current.Response.Write(Environment.NewLine) Next HttpContext.Current.Response.ContentType = "application/ms-excel" HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename=" + FileName + ".xls") HttpContext.Current.Response.[End]() End Sub 但是在winforms中,你不能像现在这样使用它。 您需要读出数据表并创build/打开Excel工作簿。 […]

使用DsoFramer时禁用Excel安全对话框

我使用旧的DsoFramer控件来embedded一个Excel的实例。 这与Excel 2000,2003和2007一直工作正常。 不过到2010年,我认为它的performance略有不同。 我现在得到一个关于macros的提示,然后阻止我的用户界面,直到用户将焦点转移到后台的Excel实例,然后单击确定。 我知道微软不再支持使用这个控制,但不幸的是,我们还没有能够取代它。 所以我正在寻找我们的方法来尝试和禁用此对话框。 我试过使用MsoAutomationSecurity.msoAutomationSecurityForceDisable枚举,但这似乎没有任何区别。 如果我直接通过代码打开文件,那么它的罚款,不会提示,但axFramer.Open()调用总是会导致它提示。 有谁知道这个方法吗? 在一个简单的WinForm应用程序中重现此问题的代码(您需要将文件pathreplace为包含macros的文件)。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using Microsoft.Office.Interop.Excel; using System.Diagnostics; namespace WindowsFormsApplication1 { public partial class Form1 : System.Windows.Forms.Form { private AxDSOFramer.AxFramerControl axFramer; public Form1() { // Kill any Excel processes first so they don't interfere […]

在Excel中加载WebBrowser控件在C#中的问题?

我需要在我们的WinForms应用程序中托pipeExcel电子表格。 它看起来加载的Excel文件到WebBrowser控件是要走的路。 网上有几篇关于这个的文章。 但是,他们大多使用Excel 2003(我猜)。 Excel 2007提出了一些新的问题: 默认情况下,Excel电子表格在新窗口中打开,而不是embedded到WebBrowser控件中。 基于微软,这是devise,但它也build议通过更改registry设置的修复。 这不是很好,但我可以忍受。 随着registry的变化,我能够在我的WebBrowser控件中embeddedExcel电子表格。 但是,Excel工作簿仍然在后台打开 – 我甚至无法closures,但在closuresWinForm应用程序时会自动closures。 当您观察电子表格如何加载时,它很有趣:它首先加载到Excel工作簿中,然后转移到我的WebBrowser控件中。 我怎样才能摆脱(或隐藏)这个背景窗口? 编辑:其实,Excel窗口不closures,但放入背景。 但是,在CodeProject的这篇文章的帮助下,它可以被closures。 在那篇文章中,当WinAppclosures时,Excel窗口closures。 但是可以使用相同的函数closuresWebBrowser的DocumentCompleted事件上的窗口。 这不是完美的,因为你仍然看到一个屏幕闪光,但没关系。 我希望有一个更好的方法来做到这一点。 为了避免屏幕闪烁,我试图尽量减lessExcel窗口。 但是,当我尝试将WindowState设置为最小化时,它会引发COMexception。 任何线索? 如果我可以从开始隐藏这个禁用的窗口,这将是一个更好的解决方法。 当您第一次打开电子表格时,会popup一个消息框,要求您提供“打开”,“保存”和“取消”选项。 有一个checkbox来禁用它。 但我不希望这个消息箱出现过。 这是什么registry设置? 在我的电子表格中,有一个应该dynamic加载的加载项组件。 但是,加载到WebBrowser不起作用(它无法find它)。 如果我使加载项处于活动状态,则加载没有问题。 WebBrowser上有什么可以改变的? WinForms应用程序中有更好的替代scheme来托pipeExcel电子表格吗?

select/插入/更新/删除Excel 2007文件和C#

我正在使用DataGridView ,我将我的Excel文件绑定到DataGridView 。 我能够从Excel文件读取以及使用DataGridView插入到该文件。 但我无法删除和更新该文件。 这是一个错误,说: 这个ISAM不支持删除链接表中的数据。 是否有任何其他方法使用DataGridView在Excel文件中执行这些操作。 或者简单地说,我怎样才能在C#中使用DataGridView在Excel文件中删除和更新logging。

将DataTable导出到Excel表格 – 创build时获取空行

我有一个由6个表组成的数据集。 当我把它们放到我的方法下面,它在第一张桌子上完美地工作。 但是,我注意到在第二个表中的第二行(在列下)是空的,然后显示表数据。 这只是表3中的相同,这次只有两行是空白的。 随着每个剩余表格的build立,这增加了空行。 我证实,表本身没有这些空行。 我希望在这里有人会这样看待这个代码,让我知道这是什么原因。 public Excel.Application PrepareForExport(System.Data.DataSet ds) { object missing = System.Reflection.Missing.Value; Excel.Application excel = new Excel.Application(); Excel.Workbook workbook = excel.Workbooks.Add(missing); int k = 0; int tableCount = 6; for (int j = 0; j < tableCount; j++) { Excel.Worksheet newWorksheet; newWorksheet = (Excel.Worksheet)excel.Worksheets.Add(missing, missing, missing, missing); System.Data.DataTable dt = new […]