Tag: c#

EPPLus不返回文件

EPPLus没有返回文件。 生成或控制台错误没有错误。 networking选项卡显示完成200 OK。 public ActionResult DownloadExcel(EntityReportModel erModel, string filename) { var dataResponse = iEntityViewService.LoadEntityView(new EntityViewInput { SecurityContext = SessionCache.Instance.SecurityContext, EntityViewName = "Ticket", Parameters = new Dictionary<string, object> { {"MinTicketDateTime", "04/26/16"} } }); var table = dataResponse.DataSet.Tables[0]; filename = "NGLTICKETS"; MemoryStream stream = new MemoryStream(); using (ExcelPackage pack = new ExcelPackage()) { ExcelWorksheet ws = […]

在foreach Excel interop中查找包含两个值的行

我怎样才能findExcel表格使用Excel互操作,而不必循环每一行? 我想使用foreach语句来遍历我的集合,并且在employeeId和收费编号存在的位置,我想更新该员工的总小时数单元和费用编号。 这是我目前的代码,但是人是慢的! 代替嵌套的for循环,我可以使用excel范围来查找包含employeeId和费用号的行吗? var lastLine = sheet.UsedRange.Rows.Count; foreach (var timeEntry in filteredList.OrderBy(x =>int.Parse(x.ChargeNumber.Split('.')[2], CultureInfo.CurrentCulture))) { for (var row = 3; row <= lastLine; row++) //loop over archive sheet { if (Convert.ToInt32(timeEntry.EmployeeId) == sheet.Cells[row, 1].Value2 && timeEntry.ChargeNumber == sheet.Cells[row, 5].Text.Trim()) { sheet.Cells[row, 6] = timeEntry.TotalHours; if (timeEntry.TimeDifferential > 0) { sheet.Cells[row, 8] = "Add " […]

OpenXML:如何获取Excel工作表中选中的checkbox的列表?

我正在尝试阅读Excel文档以获取已选中的checkbox列表。 我在这里find了一个解决scheme,使用OpenXML在Word文档中查找checkbox,但是无法在Excel中checkbox。 看来CheckBox类是为WordProcessing文档而不是Excel保留的。 下面的代码显示了所有checkbox的列表,但无论我做什么,我都无法访问它们的值。 有任何想法吗? C#代码: using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(@"C:\test.xlsx", false)) { WorkbookPart workBookPart = spreadsheetDocument.WorkbookPart; foreach (Sheet s in workBookPart.Workbook.Descendants<Sheet>()) { if (s.Name.ToString().Equals("Sheet1")) { WorksheetPart wsPart = workBookPart.GetPartById(s.Id) as WorksheetPart; foreach (DocumentFormat.OpenXml.Spreadsheet.Control cb in wsPart.Worksheet.Descendants<DocumentFormat.OpenXml.Spreadsheet.Control>()) { if (cb.Name.ToString().IndexOf("CheckBox") > -1) { textBox1.AppendText(cb.Name + "\n"); } } } } } 更新: 事实certificate,我们正在使用Active X控件。 以下代码能够正确定位checkbox,这是一个性能非常低的解决scheme,但不能使用OpenXML: […]

如何从Excel文件中读取C#中的未来date?

string filePath = openFileDialog1.FileName; string extension = Path.GetExtension(filePath); string header = rbHeaderYes.Checked ? "YES" : "NO"; string conStr, sheetName; conStr = string.Empty; switch (extension) { case ".xls": //Excel 97-03 conStr = string.Format(Excel03ConString, filePath, header); break; case ".xlsx": //Excel 07 conStr = string.Format(Excel07ConString, filePath, header); break; } //Get the name of the First Sheet. using (OleDbConnection […]

在没有pfx文件的情况下签署一个Excel / VSTO项目

我有一个结合了C#和Excel的VSTO项目。 我的雇主要求我使用我没有pfx文件的证书签名,我只有芯片卡上的证书。 我已经阅读了大多数在VSTO上签名的手册和问题,但都以某种方式假定我拥有pfx文件。 我在Visual Studio中的设置如下: “签署ClickOnceManifest”被选中,使用“从存储中select”来select来自芯片卡的证书 “签署Assemly”被检查。 我没有pfx文件,所以我点击“新build”,并创build了一个名为assemblySigningCertificate.pfx的证书(这可能是一个完全虚假的步骤,但这是我得到的唯一一个pfx) 发布项目后,我运行一个脚本,使用mage.exe更新签名,如 set AppPublishPath=publish set AppPublishVersionPath=publish\Application Files\diagramUnifier_1_0_0_0 copy bin\Debug\*.dll "%AppPublishVersionPath%" copy bin\Debug\*.dll.config "%AppPublishVersionPath%" copy bin\Debug\*.exe "%AppPublishVersionPath%" mage.exe -update "%AppPublishVersionPath%\diagramUnifier.dll.manifest" -ch "… certificate hash from certmgs.msc " mage.exe -update "%AppPublishVersionPath%\diagramUnifier.vsto" -appmanifest "%AppPublishVersionPath%\diagramUnifier.dll.manifest" -ch "… certificate hash from certmgs.msc " mage.exe -update "%AppPublishPath%\diagramUnifier.vsto" -appmanifest "%AppPublishVersionPath%\diagramUnifier.dll.manifest" -ch "… certificate hash from […]

如何枚举NPOI中的excel工作表

如何使用NPOI枚举所有的Excel表名? 作为一个快速的解决方法,我使用以下。 但是我觉得做这个超级内疚 try { IWorkbook Iwb; Iwb = new XSSFWorkbook(filepath); int i = 0; while (i < 100) { MessageBox.Show(Iwb.GetSheetAt(i).SheetName); i++; } } catch (Exception ex) {//Do Nothing.. }

用C#写Excel函数

我有一个从C#编写function到Excel文件的问题。 private void AddDemandFunctions() { Func<string, string, string> function = (range, shift) => { var builder = new StringBuilder(); builder.Append("=LICZ.JEŻELI("); builder.Append(range); builder.Append("; \""); builder.Append(shift); builder.Append("\")"); return builder.ToString(); }; int startRow = 5; int endRow = 20; string [] columns = { "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", […]

C#:尝试保存导出的Excel文件,但保存为网页(.html)

以下是我用来导出excel文件的代码。 public void ExportReport() { DataTable dataTable = new DataTable(); dataTable = getDataTable(); HttpResponse response = HttpContext.Current.Response; GridView grdExportData = new GridView(); grdExportData.AllowPaging = false; grdExportData.DataSource = dataTable; grdExportData.DataBind(); //Clear the response and add the content types and headers to it. response.Clear(); response.ClearContent(); response.ContentType = "application/octet-stream"; DateTime currDate = DateTime.Now; response.AddHeader("Content-Disposition", "attachment; filename=report.xls") // Create […]

导出到Excel,同时使用Gridview和LINQ保持开始零

当我将我的模型导出到excel时,我似乎失去了开始的零。 我的数据库中的某些值的值为“0345”或“0001”。 当我将它们导出为ex​​cel时,excel表格显示“345”或“1”。 我如何保持领先的零? 我的应用程序使用MVC 5,并使用LINQ语句db.lookup_client_name.ToList(); 我已阅读其他文章,其中指出,在开始时将值设置为具有' (单引号) '的string,或者在string之前添加\t 。 我如何通过LINQ语句来实现这一点? 我的代码在下面… public ActionResult ExportToExcel(string Value) { var gv = new GridView(); gv.DataSource = db.lookup_client_name.ToList(); gv.DataBind(); Response.ClearContent(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment; filename=LookupClientName_" + DateTime.Now.ToString("yyyy-MM-dd HH:mm") + ".xls"); Response.ContentType = "application/ms-excel"; Response.Charset = ""; StringWriter objStringWriter = new StringWriter(); HtmlTextWriter objHtmlTextWriter = new HtmlTextWriter(objStringWriter); gv.RenderControl(objHtmlTextWriter); […]

当行不是以数字开头时,删除c#中csv文件的行

上传文件后,这个c-sharp代码会将一个Excel文件转换为CSV格式保存,并用|分隔列 。 但是当在Excel文件的“Annotations”列上inputbreak line时 ,csv格式的输出是错误的,因为是为每个换行符添加新的行,请看下图。 我需要删除这一行,因为行不是以数字(第N列 )开始,或者在文件Excel(列注释 )中replace断行 。 我试过这个replace代码没有成功: csvData += result.Tables[ind].Rows[row_no][i].ToString().Replace("\r\n", "\n") + "|"; 如何解决这个问题? 预先感谢您的任何帮助。 我的代码如下。 FileUploadControl.SaveAs(Server.MapPath("/public/") + filename); FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read); Excel.IExcelDataReader excelReader = Excel.ExcelReaderFactory.CreateBinaryReader(stream); DataSet result = excelReader.AsDataSet(); excelReader.Close(); result.Tables[0].TableName.ToString(); string csvData = ""; int row_no = 0; int ind = 0; while (row_no < result.Tables[ind].Rows.Count) { […]