Tag: c#

快速的方法来获取Excel范围为C#中的文本或单元格格式的数组?

数组操作比VSTO中的范围操作快,所以目前我正在使用 object[,] RangeValues = wsh.get_Range("A1:" + lastCell.Address).Value2; 效果相当不错。 可悲的是,我有一些不一致的数据。 有时候有0.45 ,有时候是0.45% ,当然以后我会看到它是0.0045代码。 可悲的是,从“商业”的angular度来看,这两个值都意味着0.45 。 我不能强制一致性,文件来自我没有任何权限的各种来源。 这是我需要处理的事情。 当然,方法是查看格式或显示文本,看看是否有%符号。 如果有的话,我只需要将值乘以100.可悲的是,如果我尝试: object[,] RangeValues = wsh.get_Range("A1:" + lastCell.Address).Text; 我得到消息,不能将DBNull转换为object[,] 。 那么是否有任何方法可以让我一次加载文本或格式,而不需要在mu循环的每个步骤都完成代码< – >工作表边界?

在C#中的Excel 中添加超链接 – 在Excel中自己

任何人都可以告诉我,我们可以如何在Excel(2007或更高版本)中使用Office Interop in .NET(c#)从一个表格中的单元格添加超链接到另一个表格中的单元格 例如:从Sheet1单元格A1到Sheet2单元格B10的超链接

错误:不能selectDatePicker上的浮动VSTO加载项之外的date

这里logging与微软的问题 – Repro可以下载: https : //connect.microsoft.com/VisualStudio/feedback/details/741454/value-change-event-doesnt-fire-for-datetimepicker-controls-used-在-VSTO-插件 如果将DateTimePicker放入Excel VSTO浮动加载项中,并且在日历下拉时将其放置,则它位于加载项边缘之外,请参阅此处: select绿色环绕的任何date如预期,但点击任何红色的date,它只是closures日历下拉,并没有设置date! 有谁知道我可以解决这个问题? 编辑 这个SO用户遇到了使用WPF的问题: VSTO WPF ContextMenu.MenuItem在没有提出的TaskPane之外单击 这个问题的答案表明这个问题被报告连接了一段时间,但仍然没有与VSTO 4.0 SP1的解决scheme: https : //connect.microsoft.com/VisualStudio/feedback/details/432998/excel-2007-vsto-custom-任务窗格与- WPF的上下文菜单具有焦点,问题 其中一个解决方法是使用DispatcherFrame来抽取消息并为菜单订阅GotFocusEvent和LostFocusEvent。 http://blogs.msdn.com/b/vsod/archive/2009/12/16/excel-2007-wpf-events-are-not-fired-for-items-that-overlap-excel-ui-for- wpf-context-menus.aspx但是这是所有菜单的WPF代码不是Winform DateTimePicker的解决scheme。 Microsoft Connect Repro: 新build项目> Excel 2010加载项 private void ThisAddIn_Startup(object sender, System.EventArgs e) { //setup custom taskpane MyTaskView = new TaskPaneView(); MyTaskView.currentInstance = Globals.ThisAddIn.Application; MyTaskPane = this.CustomTaskPanes.Add(MyTaskView, "MyTaskView"); MyTaskPane.DockPosition = […]

VSTO:将元数据附加到Excel中的单元格?

我正在使用VSTO创buildExcel加载项。 这个插件检索并显示来自sql-server的大量数据。 这很好,但后来我打算访问Excel中的一些数据,并在某些方面进行修改。 我的问题是,我需要一种分类我想修改的单元格的方法。 有没有什么办法可以将元数据添加到单元格中,以了解它是否应该修改的单元格? 例如,添加一个属性到单元格,例如“editable_cell”,并做一些像Excel.FindCellsWithAttribute(“editable_cell”)来寻找所需的单元格? 谢谢! /古斯塔夫

试图closures电子表格时,Excel会询问用户是否保存更改

我们使用EPPlus为Excel电子表格生成一堆报告。 典型的代码如下所示: var workbookFile = new FileInfo(reportFile); using (var excel = new ExcelPackage(workbookFile)) { var wb = excel.Workbook; var ws = wb.GetCleanWorksheet("Report"); ws.Select(); // write data to sheet ws.Cells[1, 1].Value = "foo"; excel.Save(); } 当用户打开电子表格时,一切都很正常。 当他们尝试closures电子表格而未做任何更改时,Excel会询问他们是否要保存更改。 这不是太大的交易,但它是烦人的,有点担心。 我已经在OpenXML SDK生产力工具中打开了电子表格,并通过了validation。

大胆和斜体不符合EPPLUS

我正在使用下面的代码来更新Excel数据格式,在这里我希望标题是粗体和整个斜体格式的数据,但是当我运行代码中的所有function似乎工作正常,除了粗体和斜体。 代码也完成执行没有任何错误,但在Excel文件没有任何单元格的数据在粗体或斜体格式。 public void FormatExcel() { string currentDate = DateTime.Now.ToString("yyyyMMdd"); FileInfo File = new FileInfo("G:\\Selenium\\Test66.xlsx"); using (ExcelPackage excel = new ExcelPackage(File)) { ExcelWorksheet worksheet = excel.Workbook.Worksheets[currentDate]; int totalRows = worksheet.Dimension.End.Row; int totalCols = worksheet.Dimension.End.Column; var headerCells = worksheet.Cells[1, 1, 1, totalCols]; var headerFont = headerCells.Style.Font; headerFont.Bold = true; headerFont.Italic = true; headerFont.SetFromFont(new Font("Times New Roman", […]

将datatable转换为excel 2007(.xlsx)

我有一个DataTable我需要把Excel 2007格式,并保存为Excel文件(.xlsx)2007年。 任何人都可以帮助我做到这一点?

C# – 评估Excel逻辑公式

我有一个应用程序,需要评估Excel逻辑公式,我使用Excel DLL来做到这一点,但DLL是不是很有效。 .NET Framework(C#)有任何可以完成此任务的类? 一个样本 我提供这个 =IF(AND(10>=-5;10<0);(-3,8*10+335);IF(AND(10>=0;10<5);(1,4*10+335);IF(AND(10>=5;10<14,4);(-1,2766*10+348,38);IF(AND(10>=14,4;10<25);(-1,5094*10+351,74);IF(AND(10>=25;10<=45);(-1,4*10+349);0))))) 得到这个 335,614 谢谢

为什么CoUninitialize在退出时会导致错误?

我正在使用C ++应用程序从Excel文件读取一些数据。 我有它的工作,但我对一部分感到困惑。 这里是代码(简化为只读第一个单元格)。 //Mostly copied from http://www.codeproject.com/KB/wtl/WTLExcel.aspx #import "c:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSO.DLL" #import "c:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" #import "C:\Program Files\Microsoft Office\Office11\excel.exe" rename ("DialogBox","ExcelDialogBox") rename("RGB","ExcelRGB") rename("CopyFile", "ExcelCopyFile") rename("ReplaceText", "ExcelReplaceText") exclude("IFont", "IPicture") _variant_t varOption((long) DISP_E_PARAMNOTFOUND, VT_ERROR); int _tmain(int argc, _TCHAR* argv[]) { DWORD dwCoInit = 0; CoInitializeEx(NULL, dwCoInit); Excel::_ApplicationPtr pExcel; pExcel.CreateInstance(_T("Excel.Application")); Excel::_WorkbookPtr pBook; pBook = pExcel->Workbooks->Open("c:\\test.xls", […]

如何使用OleDbDataAdapter从Excel文件中的任何电子表格中进行select

我正在使用OleDbDataAdapter从Excel文件中提取数据集,但我有SELECT语句里面的问题 DataSet excelDataSet = new DataSet(); using (OleDbConnection con = new System.Data.OleDb.OleDbConnection(connectionString)) { con.Open(); OleDbDataAdapter cmd = new System.Data.OleDb.OleDbDataAdapter("select * from [Name of spreadsheet]", con); cmd.Fill(excelDataSet); con.Close(); } 如果您看到“我"select * from [Name of spreadsheet]" ,但是我需要获取任何电子表格或第一个电子表格,但是此电子表格的名称可以是任何内容。 如何指定它? 是否有任何特殊字符,如"select * from [%]"