Tag: 自动化

使用c#移动到Excel中下一行的下一个单元格

如何使用C#移动到Excel中的下一行。 我正在使用Office PIA v 14.当我使用Range.Next属性时,它将我带到紧邻范围的单元格。 我怎样才能移动到下一行? 即。 紧接在下面的单元格。

数据格式自动转换为父子格式

这是一个excel表单,每行只填充一个列。 (说明:所有城市类别属于V21,所有手机类别属于CityJ等) V21 CITYR CITYJ HandsetS HandsetHW HandsetHA LOWER_AGE<=20 LOWER_AGE>20 SMS_COUNT<=0 RECHARGE_MRP<=122 RECHARGE_MRP>122 SMS_COUNT>0 我需要将此格式更改为具有父级和子级分类格式的双列格式。 因此输出表将是 V21 CITYR V21 CITYJ CITYJ HandsetS CITYJ HandsetHW CITYJ HandsetHA HandsetHA LOWER_AGE<=20 HandsetHA LOWER_AGE>20 LOWER_AGE>20 SMS_COUNT<=0 SMS_COUNT<=0 RECHARGE_MRP<=122 SMS_COUNT<=0 RECHARGE_MRP>122 LOWER_AGE>20 SMS_COUNT>0 数据是巨大的,所以我不能做手动。 我怎么能自动化这个?

Microsoft Excel – 如何自动填充列中的公式?

长寿,EmployeeID,StartDate,EndDate 我将一堆数据粘贴到工作表(单元格B1-Dn)中,并且需要A1-An(长寿命)公式来自动计算每个input员工的结果。 我正在使用Microsoft Excel 2010。 目前,我正在使用的公式是: =IF ( C1 , IF ( D1 , D1-C1 , TODAY()-C1 ) , "") 这很好,除了我必须在A列中手动添加/删除具有此公式的单元格以匹配在任何给定时间input的行数。 这是非常耗时的,而且在使用这个报告时pipe理层难以掌握。 🙂 有没有办法说“每一行数据,在A列中获取这个公式”? 我一直在网上进行研究,并find各种答案。 最显着的答案是使用具有默认值的下拉列表,但我不认为这将适用于默认公式 。

如何在C ++中获得Excel单元格的值

如果有人知道如何从Excel :: Window指针到打开的Excel单元格中的实际值,请让我知道。 这里是任务条件: – Excel正在单一窗口中运行,在一张表上有一个工作簿 – 有些单元格有数据(为了简化,让我们假设只有一个单元[1,1]有数据,即“a”)问题是如何发现只有一个单元有数据,单元是[1,1],数据是“a”。 从这里开始是一个代码片段: int main( int argc, CHAR* argv[]) { CoInitialize( NULL ); HWND excelWindow = FindWindow(L"XLMAIN", NULL); EnumChildWindows(excelWindow, (WNDENUMPROC) EnumChildProc, (LPARAM)1); return 0; } BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM) { WCHAR szClassName[64]; if(GetClassNameW(hwnd, szClassName, 64)) { if(_wcsicmp(szClassName, L"EXCEL7") == 0) { Excel::Window* pWindow = NULL; HRESULT hr = […]

如何提示用户保存自动化的Excel文件

我已经search,没有发现我直接find的东西(也许我的search没有打到单词的组合)。 在C#中,我创build了一个使用Interop.Excel的Excel工作表,我在其中插入一些数据并创build一个图表。 这一切工作正常,当我做一个xlWorkBook.SaveAs。 我想要做的是提示用户将自动工作簿放在具有自己的文件名的地方。 我已经尝试( http://p2p.wrox.com/vb-how/63900-disabling-second-excel-save-prompt.html ),他基本上做了一个新的SaveFileDialog,然后如果它==好,他build立他的Excel表然后他说他的工作簿.SaveAs(FilePathFromSaveAsDialog)导致提示。 当我尝试它时,我得到“显示模式对话框,当应用程序未在UserInteractive模式下运行不是一个有效的操作”错误。 我会粘贴我所有的代码,但它是在一个单独的系统上,但是它只是: using Excel = Microsoft.Office.Interop.Office //….then on click of link button…. Excel.Application xlApp; Excel.Workbook xlWorbook; Excel.Workbooks xlWorkbooks; Excel.Sheets xlSheets; Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlApp = new Excel.ApplicationClass(); xlWorkBooks = xlApp.Workbooks; xlWorkBook = xlWorbooks.Add(misValue); xlSheets = xlWorkBook.Worksheets; xlWorkSheet = (Excel.Worksheet)xlSheets.get_Item(1); //….Now I fill my Excel sheet […]

使用c#枚举Excel工作簿中的单元格的有效方法

枚举工作簿中每个工作表中的每个单元格的最有效方法是什么? 下面的方法似乎适用于约130,000个单元的工作簿。 在我的机器上,打开文件需要约26秒,枚举单元约需5秒钟。 不过,我不是Excel专家,想要validation这个代码片段与更广泛的社区。 DateTime timer = DateTime.Now; Microsoft.Office.Interop.Excel.Application excelApplication = new Microsoft.Office.Interop.Excel.Application(); try { exampleFile = new FileInfo(Path.Combine(System.Environment.CurrentDirectory, "Large.xlsx")); excelApplication.Workbooks.Open(exampleFile.FullName, false, false, missing, missing, missing, true, missing, missing, true, missing, missing, missing, missing, missing); Console.WriteLine(string.Format("Took {0} seconds to open file", (DateTime.Now – timer).Seconds.ToString())); timer = DateTime.Now; foreach(Workbook workbook in excelApplication.Workbooks) { foreach(Worksheet sheet in […]

办公自动化与Windows 7和Office 2007挂起

我有一个Delphi XE8程序,我使用Office自动化来构build一个Excel文件。 build设需要几秒钟,所以我把这项工作放到后台线程,以便我的程序将保持响应,我可以处理取消请求。 我已经这样设置: TTask.Run( procedure var oXL, oSheet, o2Sheet, oRng, VArray : Variant; begin oXL := CreateOleObject('Excel.Application'); oXL.Visible := False; oXL.DisplayAlerts := false; … (all the processing to build the Excel file) oXL.Application.Workbooks[1].SaveAs(ExcelFilename, 51 { = xlWorkbookDefault } ); oXL.Workbooks.Close; oXL.Application.Quit; oXL := Unassigned; end ); 这个代码工作得很好,就像我想要的那样。 它创build了Excel工作簿作为后台任务,完成后从任务返回主线程,应用程序保持响应。 我以为一切都很好。 它使用Office 2016在我的Windows 10计算机上工作。我有几个用户在他们的计算机上成功运行它。 但是我有一个用户在线程中挂起程序的报告。 我能够做一些testing。 […]

有没有办法编程连接Excel文件?

场景:我们有一个networking系统,可以“随时”自动生成office 2003 excel文件(使用2003 XML文件格式,而不是二进制格式)。这些文件确实保存在Web服务器上,用于各种事情。 现在,我们处于这样一种情况:客户端真的希望我们把这个进程生成的xls文件粘贴到一个大文件中。 (主要是让他们只能按“打印”一次。) 我假设.net框架必须有一些方法来做到这一点(和这样的事情),但我似乎无法挑逗我需要的MSDN。 logging:.net 2.0,使用VB.net和ASP.net。 如果需要的话,可以在服务器上安装Excel,但是在每个Web用户点击的背景中打开excel的东西可能无法很好地扩展。 ;)

如何使用C#从Excel工作表中删除VB代码?

有谁知道如何删除所有的 VB代码forms使用C#的Excel工作簿? 此代码不起作用。 它删除第一个(最后一个)VBComponent,但在第二个上升ArgumentException。 VBProject project = workbook.VBProject; int componentsCount = project.VBComponents.Count; for (int i = componentsCount; i >= 1; i–) { VBComponent component = project.VBComponents.Item(i); project.VBComponents.Remove(component); } 有什么build议么? 🙂

我应该参考哪个Microsoft Word(和Excel)Interop程序集或DLL?

我正在使用VB.NET和.NET 3.5框架。 我试图使用他们各自的PIA自动化word和excel来获得intellisense帮助,然后(因为用户没有安装PIA程序集/ dll)删除引用,以便它将作为COM对象调用而不会引发错误。 我发现这篇文章: http : //msdn.microsoft.com/en-us/library/15s06t57.aspx但它并没有真正帮助我什么版本的程序集/ DLL我应该使用。 当我去添加一个引用,我看到这样的东西: 然后 然后 注意所有这些突出显示的声音都很相似,并且有多个版本的程序集。 我开始的链接build议与产品版本相关联的DLL的名称(如WORD版本12 — Microsoft.Office.Interop.Word.dll),但没有说明PIA程序集的版本 。 那么我怎么知道哪一个使用? 还有一个更好的问题:为什么这不是明显的地方? 所有我想要的是微软说:“嘿,你想自动与Word 2007的邮件合并?使用[在这里插入有意义的DLL名称(PIA或”工具“程序集?)]顺便说一句,你可以在这里得到的DLL [ “这里”超链接到我需要的下载]。使用可能安装了2007或2010年的计算机?确保你有两个DLL(如果是这种情况),这里是你如何testing:[插入有用例]。 (例如“对于Word 14(即Word 2010),请使用Microsoft.Office.Interop.Word DLL版本12.0.0.0”(是这种情况吗?我不知道。)) 这应该是显而易见的 ,它不似乎是如此。 也许这是显而易见的? DLL的版本是否与程序的版本相同? (即Microsoft.Office.Interop.Word DLL版本12.0.0.0 =?= WORD版本12) 也许我在想这个,但对我来说还是不明显的。 如果你能回答第一个问题,我会很高兴,但如果你能解释这两个问题,那会更好。