Tag: c#

使用NPOI在打开的Excel应用程序上编写

乡亲, 环境 Windows 8.1 Visual Studio 2013 C# 问题 如何使用NPOI( https://npoi.codeplex.com/ )在可见的Excel工作表上编写值并制作图表。 我为什么要这样? 我正在开发一个应用程序来测量设备中的温度。 为了把实验数据放在一个地方,我想在Excel工作表上logging数据并在工作表上制作一个图表。 此外,我想保持Excel工作表可见,并检查实时更新的图表。 您还可以在National Instruments的Measurement Studio上创buildWindows窗体应用程序的graphics,但考虑到Excel图表的灵活性(大小和xy范围可变,易于使用的用户界面等),我想坚持Excel中。 您可以轻松地使用Microsoft.Office.Interop.Excel通过ExcelApp.visible = true; 。 但是,这个模块要求用户释放每个生成的COM对象。 否则,物体保持并消耗记忆。 这就是我更喜欢使用NPOI的原因。 我怎样才能做到这一点? 任何答案将不胜感激。

如何在没有安装Office或任何第三方依赖项的情况下构buildExcel文件?

Windows窗体应用程序(C#),我们已经得到了基于.xlsx文件的导入文件。 我负责编写一个自动生成电子表格的新部分。 为它创build数据很容易(并完成)。 我有任何额外的信息,我需要创build电子表格,除了… 他们在第11个小时告诉我,Microsoft Office没有安装在服务器上,所以Microsoft.Office.Interop等不是解决scheme。 我同时发现,目标是以最小的影响做到这一点……所以如果我可以避免添加任何引用,那将是可取的; 它听起来不像在服务器上安装任何东西是一个选项。 我能够很好地parsing出一个.csv文件,但是事实certificate,select文件的代码只能查找.xlsx文件。 所以,即使我可以在Excel中打开它没有问题,这实际上并没有提供一个解决scheme。 因此,对于我所有的研究,我还没有find“我可以手动创build.xlsx文件吗?”这个问题的答案。 我想我最接近的是实际使用的oledb,但由于电子表格不存在于门外,所以每次我都去conn.open(); 在下面的代码中,它失败了。 有我自己创build这个文件的简单方法吗? 我知道.xlsx基本上是压缩XML,但我找不到任何参考,我可以看到什么标签我需要放在一个文件,然后如何正确地压缩它? string cnStr = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + filePathAndName + ";Persist Security Info=True;"; using (System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(cnStr)) { conn.Open(); System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(); cmd.CommandText = "CREATE TABLE [" + worksheetCategory + "] (SKU VARCHAR, […]

C#:DataTable容量有限

在C#程序中,我将Excel数据传输到DataTable,然后将其显示在DataGridView中。 但是我的数据被截断:DataGridView停在F255列。 在debugging模式下,我发现我的DataTable具有256的logging容量,它匹配我的数据停止从Excel文件复制的地方。 我可以做错了吗? 有没有办法扩展DataTable的容量? 先谢谢你。

用excel与ACE.OLEDB导入数字前导零

我有一个用户select一个Excel电子表格的程序。 程序然后从OLE.DB中读取该excel文件,并将该数据存储到DataTable中。 我的问题是当我从excel电子表格导入条形码与前导零,他们得到修剪。 我的列被格式化为文本。 以下是我的代码: public DataTable GetExcelInfo(string filepath) { DataTable datatab = new DataTable(); try { string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=1;ImportMixedTypes=Text\\"; using (OleDbConnection conn = new OleDbConnection(connectionString)) { conn.Open(); OleDbDataAdapter adapt = new OleDbDataAdapter("SELECT Format([F1], \"#\"), [F2], [F3] FROM [Sheet1$]", conn); adapt.Fill(datatab); } } catch (Exception e) { ErrorReporting.File(e, […]

Interop.Excel:Excel实例在程序存在后显示在任务pipe理器中C#

我正在使用C#来创buildExcel文件。 当我的程序运行时,excel实例被创build并显示在任务pipe理器中。 这是正常的,但是当我的程序closures,然后Excel任务不应该显示在任务pipe理器,但它显示。 请检查我的代码,并告诉我什么是我的错误,导致甚至在closures我的应用程序后,在任务pipe理器中的Excel实例。 这是我的代码。 private void GenerateExcel() Excel.Application xlApp = new Excel.Application(); if (xlApp == null) { return; } Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlWorkBook = xlApp.Workbooks.Add(misValue); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); xlWorkBook.Windows.Application.ActiveWindow.DisplayGridlines = false; xlWorkSheet.Cells[2, 2] = "Sheet 1 content"; if (!Directory.Exists(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\Reports")) { Directory.CreateDirectory(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\Reports"); } string strpath = […]

在Asp.net中只导出Gridview数据到Excel格式C#

在我的页面中,我有两个文本框控件,我从日历扩展程序中selectdate和导出到Excelbutton我将把Gridview数据导出到Excel工作表。 当我selectexcel表格的时候,显示出我输出excel表格的文本框和button。 我已经在导出button中写入了导出代码。 喜欢:- protected void Export_to_Excel_Click(object sender, EventArgs e) { try { Response.ClearContent(); Response.Buffer = true; Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "Customers.xls")); Response.ContentType = "application/ms-excel"; StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); Grd_MidData.AllowPaging = false; bindgriddata(); //Change the Header Row back to white color Grd_MidData.HeaderRow.Style.Add("background-color", "#FFFFFF"); //Applying stlye to gridview header cells for […]

如何使用Excel-DNA来遍历行?

我正在寻找excel-dna迭代工作表中的单元格的一个简单的示例。 我会想象我会有这样的事情: public static class Test { [ExcelCommand(MenuName = "Range Tools", MenuText = "Iterator")] public static void IterateOverRows(string worksheetName, string startAddress, string endAddress) { … } } 我会从Excel中使用一个button单击将调用此加载项将运行: Application.Run("IterateOverRows", "Sheet1", "A1", "C3") 任何关于如何在Excel-DNA中做到这一点的指针?

以编程方式在Excel中创build边框

我需要知道如何在基于单个单元格的for循环中为excel创build边框。 下面是我的代码导出到Excel for (int i = 1; i < dataGridView1.Columns.Count + 1; i++) { worksheet.Cells[5, i] = dataGridView1.Columns[i – 1].HeaderText; worksheet.Cells[5, i].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; worksheet.Cells[5, i].Font.Bold = true; }

不能从Excel文件中读取空单元格

有一个像这样的excel文件: 1 | AAAA | val1_1 2 | | val1_2 3 | EEEE | val2_1 4 | | val2_2 5 | | val2_3 6 | CCCC | val3_1 有一个代码: Excel.Application xclApp = new Excel.Application(); Excel.Workbooks xclWorkbooks; Excel.Workbook xclWorkbook; Excel.Worksheet xclWorksheet; Excel.Range xclRange; xclWorkbooks = xclApp.Workbooks; string path = "Some path"; xclWorkbook = xclWorkbooks.Open(path); xclWorksheet = […]

无法在天数小于12时以适当的格式获取date从EXCEL在C#

我是新来的C#。 当我试图使用下面的代码导入Excel表: try { DateTime date = DateTime.FromOADate(w.Cells[i, index[j]].value2); string str = date.ToString("dM-yyyy"); dRow[j] = Convert.ToDateTime(str, ci); } catch (Exception) { try { String ss1 = (String)w.Cells[i, index[j]].value2; if (ss1 == null || ss1.Equals("NIL") || ss1.Equals(".")) { dRow[j] = DBNull.Value; } else if (ss1 != null) { DateTime dat = Convert.ToDateTime(ss1); ss1 = dat.ToString(ci.NumberFormat); dRow[j] […]