Tag: .net

我想打开一个excel文件,等待用户编辑并保存

我想打开一个excel文件并等待用户编辑并保存,然后我使用这些数据。 我正在使用这个代码: string tempFileName = "test.xlsx"; MemoryStream ms = DocumentFormat.OpenXml.Extensions.SpreadsheetReader.Create(); DocumentFormat.OpenXml.Extensions.SpreadsheetWriter.StreamToFile(tempFileName, ms); var psi = new ProcessStartInfo(tempFileName); var p = new Process(); p.StartInfo = psi; p.Start(); p.WaitForExit(); p.Close(); // use the data 一切都看起来不错 但问题是,如果有一个打开的Excel文件运行此块之前,我会有一个错误p.WaitForExit(); 这是“无效操作exception”的行。 我认为原因是:如果已经有一个名为“excel.exe”的进程,我的代码将不会创build另一个等待它退出,并将合并进程或类似的东西。 我可以强制用户closures所有打开的Excel文档,然后运行这个代码,或者我自己杀了excel.exe进程,并从我的代码再次启动它。 我不想使用这些解决scheme。 请帮我找出路! 非常感谢

导出为ex​​cel数据时出错:“',hex值0x07,是一个无效的字符,使用c#

当我尝试导出kendo ui网格中的数据以达到excel时,我遇到了一个奇怪的问题。 错误: An exception of type 'System.ArgumentException' occurred in System.Xml.dll but was not handled in user code Additional information: ' ', hexadecimal value 0x07, is an invalid character. 和下面的方法我用于出口到Excel private static void WriteDataTableToExcelWorksheet(DataTable dt, WorksheetPart worksheetPart) { OpenXmlWriter writer = OpenXmlWriter.Create(worksheetPart); writer.WriteStartElement(new Worksheet()); writer.WriteStartElement(new SheetData()); string cellValue = ""; int numberOfColumns = dt.Columns.Count; bool[] […]

无法在Windows XP中加载文件或程序集microsoft.office.interop.excel版本15.0.0.0

我在Windows 8中开发了VS2012中的一个程序。 我正在读这样的Excel文件。 xlWorkBook = xlApp.Workbooks.Open(fileAddress, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); 我将Microsoft Excel 15.0对象库添加到我的项目。 我的程序在Windows 7和Windows 8中运行良好,但在Windows XP中却不能运行。 我得到这个错误: 无法加载文件或程序集“Microsoft.office.interop.excel版本15.0.0.0,文化=中性,PublickeyToken = 17e9bcce111e9429c”或其依赖项之一。 该系统找不到指定的文件。 编辑:我使用.Net3.0

C#命令行添加对Microsoft.Office.Interop.Excel的引用

需要使用C#处理Excel自动化。 没有Visual Studio安装,无法完成。 但Ms-Office 2007安装在工作站上。 在使用csc.exe进行编译时,由于Microsoft.Office程序集的问题而出现错误。 我试图在一般位置search,但无法finddll文件。 using Microsoft.Office.Interop.Excel; using Excel = Microsoft.Office.Interop.Excel; /// no files found /// assembly paths ; C:\Windows\assembly\Microsoft.Office.Interop.Excel /// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5 class Program { static void Main(string[] args) { var excelApp = new Excel.Application(); excelApp.Workbooks.Add(); // Insert VBA code here. excelApp.Visible = true; } }

按要求退出Excel实例作为类成员

我试图创build一个类,我想用excel实例工作,我想要退出excel实例按要求(正如在这个答案中提到的。仍然能够正确debugging我分离垃圾收集器的方式如下: Imports Excel = Microsoft.Office.Interop.Excel Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim xlsInst As New ExcelInst GC.Collect() GC.WaitForPendingFinalizers() End Sub End Class Public Class ExcelInst Sub New() Dim myxlApp As New Excel.Application Dim myxlWb As Excel.Workbook '~~> Add a new Workbook myxlWb = myxlApp.Workbooks.Add '~~> Display Excel myxlApp.Visible […]

当从vb.net中删除单元格时,从'Object(,)'types转换为'String'types无效

我试图删除在范围B2到T5000,以字hello开头的所有单元格,但是我不断得到从types'对象(,)'到types'string'的转换不是有效的错误。 任何帮助,将不胜感激。 Dim xlCell As Excel.Range = Nothing xlCell = xlWsheet2.Range("B2:T5000") For Each cell In xlCell If xlCell.Value IsNot Nothing Then If CStr(xlCell.Value).StartsWith("Hello") Then xlCell.Delete() End If End If Next End If End If Next

VB.NET TryParse返回False,虽然有效的date通过

我在VB.NET中创build了一个检查有效date的函数。 function如下: Public Shared Function IsDate(obj As [Object]) As Boolean Dim strDate As String = obj.ToString() Dim dt As DateTime = DateTime.MinValue If DateTime.TryParse(strDate, dt) AndAlso dt <> DateTime.MinValue AndAlso dt <> DateTime.MaxValue Then Return True Else Return False End If End Function 我将一个值传递给我认为是有效date的函数。 我的testing值是49278,应该对应于2034年11月30日的date。 然而我的function告诉这不是一个有效的date。 我不明白为什么。 这里发生了什么?

用C#代码导出股票图表(ohlc)到Excel

我想导出股票图表ohlc到Excel 我使用的EPPlus,现在我知道EPPlus不支持股票图表绘制,因此我正在寻找另一个第三方DLL,我已经发现aspose,但它是支付function使用。 任何人都可以提出任何其他出口股票图表在Excel中创build股票图表由C#代码? 或者是否有可能通过EPPlus的C#在Excel中创build股票图表ohlc? 当使用aspose时,我需要在代码中使用它,当我保存aspose工作簿,它popup另一个进程正在使用的文件的exception,有没有什么办法强制closures进程访问它,或者使它被写过吗? 除此之外,我还得到了EPPlus,同时也提供了相同的tym。

添加Microsoft.Office.Interop.Excel参考

我正在尝试编写在excel电子表格上执行工作的ac#脚本。 (而不是VBAmacros)。 我正在尝试添加对Microsoft.Office.Interop.Excel程序集的引用。 我无法在“添加引用…”窗口中find对所述程序集的任何引用,或者通过浏览到C:\Windows\assembly\GAC 。 它不存在。 我卸载并重新安装了办公室,并且还下载并安装了位于此处的PIA可再发行组件。 Microsoft.Office.Core是我发现的最接近的程序集,通过COM – > Microsoft Office 14/15 Object Library添加。 任何意见或build议表示赞赏。

以编程方式对使用Excel的文件进行更改会提示用户保存更改

如果行中的某个单元格包含特定的值,我有以下方法可以从文件中删除行: foreach (Excel.Range row in workSheet.UsedRange.Rows) { foreach (Excel.Range cell in row.Columns) { if (cell.Value == null) continue; string colVal = cell.Value.ToString().ToLower(); if (colVal.Contains(".zip") || colVal.Contains("bin") || colVal.Contains("debug") || colVal.Contains("release")) { Console.WriteLine(colVal); rowIndices.Add(rowIndex); } } rowIndex++; } rowIndices = rowIndices.OrderByDescending(i => i).ToList(); foreach (int i in rowIndices) { string rangeFormat = String.Format("{0}:{1}", "A" + i, […]