Tag: .net

尝试使用EPPlus读取Excel文件在服务器上工作,但不能通过浏览器

当我发布我的项目,并在服务器上运行它,它的工作。 EPPlus发现所有4个工作表,通过它们迭代,并将我的数据上传到SQL。 但是当我通过浏览器或我的同事浏览器运行时,它显示0个工作表。 任何想法,为什么这可能会发生? 这一点上的代码没有太多,但是这里有一部分: using (ExcelPackage package = new ExcelPackage(new FileInfo(strFile))) { if (package.Workbook.Worksheets.Count <= 0) strError = "Your Excel file does not contain any work sheets"; else { foreach (ExcelWorksheet worksheet in package.Workbook.Worksheets) {

是否有可能使用Epplus在Excel中复制行(与数据,合并,样式)?

问题是,我需要使用单个模板为整个集合多次从集合中的Excel中插入数据。 using (var pckg = new ExcelPackage(new FileInfo(association.TemplatePath))) { var workSheet = pckg.Workbook.Worksheets[1]; var dataTable = WorksheetToDataTable(workSheet); /*Some stuff*/ FindAndReplaceValue(workSheet, dictionary, row); } private DataTable WorksheetToDataTable(ExcelWorksheet oSheet) { int totalRows = oSheet.Dimension.End.Row; int totalCols = oSheet.Dimension.End.Column; DataTable dt = new DataTable(oSheet.Name); DataRow dr = null; for (int i = 1; i <= totalRows; i++) { […]

从Excel单元格中的超链接文本中提取URL

我在excel中有一个超链接文本,所以基本上是一堆名字,但是当我点击一个时,它会把我带到默认浏览器中的一些URL。 所以我从我的程序中的excel表中提取文本,但是我从这些超链接单元格中提取的值是string里面的值,当我想要将string链接到的URL在excel文件中。 所以我想有两种方法可以做到这一点。 我可以将excel文件中的所有超链接文本转换为相应的URL,或者我可以使用C#以某种方式从单元格中提取URL值,而不是文本。 我不知道如何做这些事情,但任何帮助将不胜感激。 到目前为止的C#代码: Excel.ApplicationClass excelApp = new Excel.ApplicationClass(); //excelApp.Visible = true; Excel.Workbook excelWorkbook = excelApp.Workbooks.Open("C:\\Users\\use\\Desktop\\list.xls", 0, false, 5, "", "",false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false); Excel.Sheets excelSheets = excelWorkbook.Worksheets; string currentSheet = "Sheet1"; Excel.Worksheet xlws = (Excel.Worksheet)excelSheets.get_Item(currentSheet); string myString = ((Excel.Range)xlws.Cells[2, 1]).Value.ToString(); 至于excel文件,它只是超链接的一长串名字。 例如单元格A2将包含文本: 美味的cookies食谱 我想提取string: http://allrecipes.com//Recipes/desserts/cookies/Main.aspx

Microsoft.Office.Interop.Excel参考无法find

我有麻烦添加Excel项目的引用。 我已经安装了主互操作程序集。 该项目正在检测Microsoft.Office.Interop.Word程序集引用,但仍无法findexcel引用。 当我尝试手动添加引用时,我右键单击项目,添加引用,导航到Microsoft.Office.Interop.Excel文件,并尝试手动添加它。 一旦我select参考我然后确保参考被检查,然后点击确定。 没有任何反应,它实际上没有添加参考path到项目。 使用VS2012旗舰版 任何build议,我可以做什么来让项目看到Excel的参考? 更新:问题修复。 在项目菜单上,单击添加引用。 在COM选项卡上findMicrosoft Excel对象库,然后单击select。 单击添加引用对话框中的确定以接受您的select。 如果系统提示您为所选的库生成包装,请单击“是”。

EPPlus自动filter只能在最后一个单元上工作

我希望标题中的每个单元格都包含一个自动filter。 下面是我试图使用的代码,但是autofilter只能在指定的最后一个单元格上设置。 例如,如果我注释掉K1的autofilter命令,电子表格将被创build, C1是唯一一个带有自动filter的单元。 //Headers ws.Cells["A1"].Value = "ChannelCode"; ws.Cells["A1"].AutoFilter = true; ws.Cells["B1"].Value = "DrmTerrDesc"; ws.Cells["B1"].AutoFilter = true; ws.Cells["C1"].Value = "IndDistrnId"; ws.Cells["C1"].AutoFilter = true; ws.Cells["D1"].Value = "StateCode"; ws.Cells["D1"].AutoFilter = true; ws.Cells["E1"].Value = "ZipCode"; ws.Cells["E1"].AutoFilter = true; ws.Cells["F1"].Value = "EndDate"; ws.Cells["F1"].AutoFilter = true; ws.Cells["G1"].Value = "EffectiveDate"; ws.Cells["G1"].AutoFilter = true; ws.Cells["H1"].Value = "LastUpdateId"; ws.Cells["H1"].AutoFilter = true; ws.Cells["I1"].Value = […]

如何使用OpenXML从Excel表格中检索选项卡名称

我有一个电子表格文件,其中有182列。 我需要将电子表格数据放入一个数据表中,但是我需要从每个选项卡添加数据,选项卡名称是什么,并将选项卡名称添加到数据表中的列。 这是我如何设置数据表。 然后,我在工作簿中循环,深入到sheetData对象,遍历每一行和每列,获取单元格数据。 DataTable dt = new DataTable(); for (int i = 0; i <= col.GetUpperBound(0); i++) { try { dt.Columns.Add(new DataColumn(col[i].ToString(), typeof(string))); } catch (Exception e) { MessageBox.Show("Uploader Error" + e.ToString()); return null; } } dt.Columns.Add(new DataColumn("SheetName", typeof(string))); 然而,在我用于数据表的string数组的末尾,我需要添加标签名称。 如何在Open XML表单中循环查找标签名称? 这是我的代码到目前为止: using (SpreadsheetDocument spreadSheetDocument = SpreadsheetDocument.Open(Destination, false)) { WorkbookPart workbookPart = spreadSheetDocument.WorkbookPart; […]

我如何在C#中模拟Microsoft Excel的Solverfunction(GRG非线性)?

我有一个约束的非线性优化问题。 它可以在Microsoft Excel中使用Solver加载项解决,但是我在C#中复制它时遇到了问题。 我的问题显示在下面的电子表格中 。 我正在解决经典的A x = b问题,但要注意x的所有组件都必须是非负的。 因此,我不使用标准的线性代数,而是使用求解器的非负约束,最小化平方差的总和,并得到一个合理的解决scheme。 我试图在C#中使用Microsoft Solver Foundation或Solver SDK复制这个。 然而,我似乎无法得到任何与他们的任何地方,因为无国界医生我无法弄清楚如何定义的目标,并与Solver SDK我总是得到状态“最佳”和解决scheme的所有零,这是绝对不是本地最小。 这是我的Solver SDK代码: static double[][] A = new double[][] { new double[] { 1, 0, 0, 0, 0 }, new double[] { 0.760652602, 1, 0, 0, 0 }, new double[] { 0.373419404, 0.760537565, 1, 0, 0 }, new double[] { […]

使用C#将公式添加到Excel中 – 使公式显示

我想将公式添加到Excel工作表。 我设法使用Formula属性来做到这一点。 问题是,当我在Excel中打开工作表时,我可以看到公式工作 – 但我只能看到单元格中的结果。 我看不到在Excel顶部的公式栏中计算的公式。 显然,如果我在Excel本身中input公式,我可以在公式栏中看到单元格和公式中的结果。 我的一些代码: for (int i = 0; i < nOfColumns / 3; i++) { Range cells = workSheet.Range[workSheet.Cells[2, i * 3 + 3], workSheet.Cells[lastRowNumber, i * 3 + 3]]; cells.FormulaR1C1 = "=IF(EXACT(RC[-2],RC[-1]),TRUE,ABS(RC[-2]/RC[-1]-1))"; } 下面是一个testing代码。 即使在我保存工作簿后,FormulaHidden也是错误的,我可以成功检索到这个公式。 真的很沮丧 Microsoft.Office.Interop.Excel.Application excelApp = null; Workbooks workBooks = null; Workbook workBook = null; Worksheet […]

DDE是否仍然重要? 哪些是替代品?

我正在研究一个股票交易信息平台,我们正在考虑提供我们的平台和自制的Excel文件之间的链接。 金融市场仍然受到DDE服务器方式的束缚,现在是否仍然如此呢? 在Excel文件,OLE DB查询上自动进行在线数据更新有哪些select? 我想知道是否有人在C#和.NET中实现OLE DB提供程序的任何示例。 我们的API将完全在线和RESTful,有任何Web服务替代链接这些数据到Excel? 我记得有一个Web Services Toolkit的Excel 2003,但在Excel 2007中找不到任何与之相近的东西。

错误:不能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 = […]