我正在为旧式WebForms应用程序实施一个小型导出功能. 我的导出代码现在只是标题(仅测试我可以成功创建文件的标题): public MemoryStream Export() { var result = new MemoryStream(); using (var p = new ExcelPackage()) { var ws = p.Workbook.Worksheets.Add("Contacts"); var col = 1; ws.Cells[1, col++].Value = "ID"; ws.Cells[1, col++].Value = "First Name"; ws.Cells[1, col++].Value = "Last Name"; ws.Cells[1, col++].Value = "Email"; ws.
以下是关于 epplus 的编程技术问答
我在试图流出我用EPPlus OfficeOpenXml软件包生成的Excel文件时面临问题. 我的WCF服务联系人如下, [WebInvoke(UriTemplate = "getengagementfeedfinalizedata?id={workspaceId}&s={startDate}&e={endDate}", Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)] Stream GetEngagementFeedFinalizeData(int workspaceId, string startDate, string endDate, Stream data); 相应的方法如下, public Stream GetEngagemen
这是我的问题. 我在Windows文件夹中有一组Excel文件,需要使用C#水标记.我已经在使用epplus. 是否可以使用Epplus? 任何其他想法都非常感谢. 谢谢 解决方案 找到答案...以下是工作代码块..可能会帮助某人.. using System; using System.Resources; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Excel = Microsoft.Office.Interop.Excel; using System.Reflection; using System.Configuration; using VBIDE = Mic
我有一个Excel工作簿,该工作簿将C列作为文本存储为数字.将其转换为数字的C#语法是什么?我知道这个VBA将完成这项工作 Range("C:C").Select With Selection Selection.NumberFormat = "0.00%" .Value = .Value End With 我尝试了C# - 但它使存储的数字作为文本. ExcelWorksheet ws3 = pck.Workbook.Worksheets.Add("New Sheet"); ws3.Cells["A1"].LoadFromDataTable(tableforme, true); ws3.View.FreezePanes(2, 4); ws3.Cells["C:C"].Style.Numberformat.Format = "#,##0.00"; ws3.Cells["C:C"].Style.Numberformat.Format = "0%"; 我必
如何根据一个输入的最大长度在单元格上设置自动化. using (rng = workSheet.Cells["A1:G1"]) { rng.Style.Font.Bold = true; rng.Style.Fill.PatternType = ExcelFillStyle.Solid; rng.Style.Fill.BackgroundColor.SetColor(Color.DarkBlue); rng.Style.Font.Color.SetColor(Color.White); } using (ExcelRange col = workSheet.Cells[2, 6, 7, 7]) { col.Style.Numberformat.Format = "yyyy-mm-dd HH:mm"; col.Style.HorizontalAlignment = ExcelHorizontalAlignment.Right; }
我正在使用有条件格式的Epplus创建Excel.我正在使用C#代码进行有条件的格式,但它不起作用. 请检查我的下面代码,让我知道我在哪里错了: ExcelPackage pck = new ExcelPackage(); var ws = pck.Workbook.Worksheets.Add("Sample1"); var _formatRangeAddress = new ExcelAddress("H16:K31,H33:K44,H46:K57,H59:K69,H71:K73"); string _statement = "=AND(COUNTA(H16:H16)0)"; var _cond4 = ws.ConditionalFormatting.AddExpression(_formatRangeAddress); _cond4.Style.Fill.PatternType = OfficeOpenXml.Style.Excel
使用EPPlus我正在将数据写入多张纸.如果不是创建表格,我正在添加表格,否则我正在检索二手行并添加该行中的数据并保存 FileInfo newFile = new FileInfo("Excel.xlsx"); using (ExcelPackage xlPackage = new ExcelPackage(newFile)) { var ws = xlPackage.Workbook.Worksheets.FirstOrDefault(x => x.Name == language.Culture); if (ws == null) { worksheet = xlPackage.Workbook.Worksheets.Add(language.Culture); //writing data } else { worksheet = xlPackage.Workbook.Worksheets[language.Cultur
我的数据集填充了不同的数据表SQL-results.某些数据表与Excel-Template文件连接.因此,最终希望与一些新工作表和复制工作表的混合物结合在一起. 这就是为什么我的代码看起来像这样的原因: public void CopyResultToExcelFileWithTemplate(DataSet sourceResult, string exportFilePath, string sourceName, string templateExcelFilePath, string sheetName = null) { var excelFile = new FileInfo(exportFilePath); var templateFile = new FileInfo(templateExcelFilePath); if (string.IsNullOrEmpty(sheetName)) { sheetName
我正在使用epplus从我的数据集创建和格式化Excel表.我想使用Epplus将标题设置在Excel表上.我找不到方法.我想设置左标头,右标头和中心标头. 我已经使用VBA代码做到了这一点,但是我想摆脱它. 在VBA中,我只会做 With ActiveSheet.PageSetup .LeftHeader = "" .RightHeader ="" .CenterHeader= "" End With 帮助! 谢谢 ps:我正在创建Winforms应用程序.我不确定这是否会改变任何东西,但只想在这里提及它.谢谢 解决方案 我终于弄清楚了. It can be done using workSheet.HeaderFooter.FirstHeader.LeftAlignedText = "" workSheet.HeaderFooter.FirstHeader.RightAlignedText = "" workSheet.HeaderFooter.Fir
i使用X509Certificate2和epplus自动签署了Excel文件中的VBA代码. 现在我想包括一个时间戳,我想在哪里设置这个? 如果我在VBA编辑器 - 工具 - 数字签名中手动签署代码,则该代码在时间戳(和countertsignature)中符合良好的签名.因此,当签署人的证书过期时,它仍然有效.但是,当与epplus签名时不是. 在excelvbasignature.cs中,看起来此功能还可以准备. 这是我到目前为止的方式: using System; using System.IO; using OfficeOpenXml; using System.Security.Cryptography.X509Certificates; ... X509Certificate2 cert = new X509Certificate2 ( PFXfile, PFXpass, X509KeyStorageFlags.PersistKeySet ); using
我正在使用Epplus 2.9.0.1与Visual Basic. 我有一个带有35行和4列的数据表以及下面的代码: Dim FullFilePath As String = "c:\Report.xlxs" Dim newFile As FileInfo = New FileInfo(FullFilePath) Using package As ExcelPackage = New ExcelPackage(newFile) Dim worksheet As ExcelWorksheet = package.Workbook.Worksheets.Add("Relatório") worksheet.Cells.LoadFromDataTable(gSystemTable, False) package.Save() End Using 当方法"加载fromdatabable"时,我会得到一个参数exception(不允许使用负行和列号).我
我希望这可以帮助我,至少可以回答我问的两个问题之一在这里,但是我正在寻找如何在epplus/openxml中创建一个PivotCache,并且在网上无法在其文档中找到任何显示如何做的东西. 所以,我有一个Excel表格,wksRawData在epplus中创建,我想创建一个带有枢轴表的第二张纸,该表基于wksRawData.Cells(wksRawData.Dimension.Address)>的枢轴缓存 - 希望我可以删除wksrawdata,但是仍然保留枢轴表.我该怎么做? 到目前为止,我在第二个工作表中创建枢轴表的代码是: Dim wksRawData As ExcelWorksheet = wbk.Worksheets("Raw Data") Dim wksPvtTbl As ExcelWorksheet = wbk.Worksheets("PivotTbl") ' Insert the Pivot Table to the sheet Dim
有人知道该怎么做吗? 我正在使用.NET中的epplus,并创建了一个带有2行字段的枢轴表和一个摘要数据字段: Dim Pivot As OfficeOpenXml.Table.PivotTable.ExcelPivotTable Pivot = wksPivot.PivotTables.Add(wksPivot.Cells("A1"), Datarange, "pName") Pivot.RowFields.Add(Pivot.Fields("Fld1")).Sort = Table.PivotTable.eSortType.Ascending Pivot.RowFields.Add(Pivot.Fields("Fld2")).Sort = Table.PivotTable.eSortType.Ascending Dim dtaFld As OfficeOpenXml.Table.PivotTable.ExcelPivotTableDataField dtaFld =
当列中的文本长时间时,如何使列是自动宽度? 我使用此代码 Worksheet.Column(colIndex).AutoFitColumn() 'on all columns' Worksheet.cells.AutoFitColumns() Worksheet.Column(colIndex).BestFit = True 'on all columns' 这些方法都没有起作用 有什么方法可以使它起作用? 注意:我的一些文本使用Unicode. 解决方案 使用AutoFitColumns,但是您必须指定单元格,我假设整个工作表: vb.net Worksheet.Cells(Worksheet.Dimension.Address).AutoFitColumns() c# Worksheet.Cells[Worksheet.Dimension.Address].AutoFitColumns(); 请注意,填充工作表后需
我正在尝试在创建excel时添加下拉列表(列表验证),我已经找到了将其添加到整列的方法,但是我的方案是不同的,因为我只在整列中添加验证行. 这是我到目前为止尝试的: public MemoryStream GetExcelSheet() { using (var package = new ExcelPackage()) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Test"); var val = worksheet.DataValidations.AddListValidation("A:A"); val.Formula.Values.Add("Male"); val.Formula.Values.Add("Female"); v
我正在使用使用Epplus的单元测试类.在我看来,我有两个选择. 我可以模拟并将httppostedfilebase注入方法,或者我可以模拟和注入epplus excelpackage类. 嘲笑httppostedfilebase,至少做一个真正的模拟似乎有限.我可以模拟文件上的基本属性(MIME类型,文件名等),但要以允许测试实际与该文件进行交互的方式模拟其输入流,似乎非常困难.我唯一可以提出的解决方案是提供一个真实的Excel文件,使用它创建真实的文件,并将该文件分配给我的模拟HttppostedFilebase的InputStream.但是从技术上讲,这是一个集成测试,而不是单位测试. const string FakeFileName = "TestExcelFile.xlsx"; // path to an actual excel file var fileStream = new FileStream(FilePath, FileMode.Open); v
我正在尝试设置单元格的数据类型,但是对于Epplus来说,这似乎是不可能的. 如果将一个数字作为单元格中的数字作为值,则在导出的Excel文件中获得一般数据类型. 如果设置了单元格的数字形式,例如: workSheet.Cells[range].Style.Numberformat.Format = "mm/dd/yyyy hh:mm:ss"; 那么我仍然不会得到日期或时间.导出的Excel文件将显示单元格作为自定义数据类型. 我只能获得一般或自定义数据类型.我想将单元格的数据类型设置为时间,但我不能.问题是,如果未设置数据类型,则出于某种原因,其他表格中的枢轴表将数字排序为字符串:( 那么,请有什么方法可以设置单元格的数据类型? 解决方案 数字格式使用Excel会变得有些怪异.基本上,它是预定义的字符串的列表,因此可以通过单元格进行匹配.要查看epplus中的列表的样子,请查看源代码中的excelnumberformat.cs类. 但是,
我最近发现了epplus( http://epplus.codeplex.com/). 我的项目中有一个Excel .xlsx文件,所有样式的列标头. 我在他们的网站上读到您可以使用模板. 有人知道如何或可以提供如何使用epplus使用我的template.xlsx文件的代码示例?我希望能够简单地将数据加载到行中而不会弄乱标题. 解决方案 我最终要解决的解决方案: using System.IO; using System.Reflection; using OfficeOpenXml; //Create a stream of .xlsx file contained within my project using reflection Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("EPPlusTest.templates.VendorTemplate.xlsx
我们正在使用Epplus生成Excel文档.代码在我的本地系统中成功构建,但是当我们通过TeamCity构建并低于错误时,它会失败 - 错误CS0246:找不到类型或名称空间名称'OfficeOpenxml'(您是否缺少使用指令或汇编引用?) 我尝试过Google找到解决方案,但全都徒劳无功.我的项目目标框架是4.5.2,我还添加了System.Core和Windowsbase.我还添加了名称空间"使用OfficeOpenxml" epplus是通过nuget软件包添加的. 解决方案 如果使用Nuget安装了任何软件包,则需要在实际构建命令之前,在构建命令之前添加Nuget Installer构建步骤,使用解决方案文件来引用您需要的Nuget软件包.此步骤是导致Teamcity下载任何未安装所需的Nuget软件包的原因. 其他解决方案 我通过删除并手动添加epplus参考来解决它.
我正在尝试为一些单元格设计,我想使用标准的"超链接"样式,但我找不到它. 这是我最好的猜测,但是工作簿不包含"标准" 以外的样式 var hLinkStyle = (from s in dataSheet.Workbook.Styles.NamedStyles where s.Name == "Hyperlink" select s).FirstOrDefault(); hyperlinkCell.StyleName = hLinkStyle.Name; 解决方案 尝试创建命名样式并将其设置为单元格: // string link = "your link". // worksheet is your worksheet reference. var namedStyle = worksheet.Workbook.Styles.CreateNamedStyle("HyperLink"); namedStyle.Style.Font.Under