Tag: c# 4.0

在Excel中使用EPPlus Lib C#.Net格式化列

我的数据表具有来自数据库表的信息,我可以使用EPPlus库将DataTable值转储到Excel中。 现在, 我想通过将单元格的范围(让A1到Z1)设置为特定的方向(45度)来格式化Excel中的列名,并给它一些颜色 我正在使用VS2010进行开发。 我怎样才能做到这一点?

将列表validation添加到除前两行之外的列

我想添加一个下拉列表(validation)创buildExcel时,我已经find了将其添加到整个列的方式,但我的scheme是不同的,因为我只将validation添加到除第一行和第二行以外的整个列。 这是我迄今为止所尝试的: 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"); val.ShowErrorMessage = true; worksheet.Cells["A1"].Formula = null; var stream = new MemoryStream(package.GetAsByteArray()); return stream; } } 我试图取消它: worksheet.Cells["A1"].Formula = null; 希望它会删除某个单元格的validation,但它不工作。 我也试过了 var val = worksheet.DataValidations.AddListValidation("A2:A"); 指定起始行号但生成的Excel文件已损坏。 对此有任何帮助吗?

使用oledb从Excel中读取公式

我正在使用C#.net(4.0),并试图通过将我的参数放入一个Excel文件来计算一些结果。 这个excel文件已经得到了所需的公式。 例如,当我在单元格A1,A2和A3中input我的参数时,计算结果值并显示在单元格a4中。 单元格a4具有使用来自a1,a2和a3的值的公式。 我可以使用oledb provider(v4.0)轻松连接到这个excel文件,然后我也可以设置a1,a2和a3的单元格值。 结果出现在单元格a4(我打开excel文件来检查)。 但唯一的问题是,当我读取单元格a4的值时,它不会按原样返回。 在a4中计算的值:6.67%我在同一个单元的.net代码中得到的值:0.092323323211 …(像这样) 作为一种解决scheme,我试图将a3的“值”部分复制到其他单元格中(如b3 = VALUE(a3)),并尝试读取b3。 但是我得到同样的结果。 有没有解决这个问题? 我是否错过了这里特定于制定的细胞? 还是MS oledb的错误? 感谢您的任何投入….

在Excel 2010中移动工作簿之后,ElementHost不会刷新

在Excel 2010 32位的Windows 7 x64,.NET 4.0中,CustomTaskPane上的ElementHost有更奇怪的问题 主机(或主机本身)内的控制在工作簿窗口移动后不会重新绘制。 为了说明这一点,我创build了示例: _host = new ElementHost { Dock = DockStyle.Fill, BackColorTransparent = false, BackColor = Color.Blue }; _userControl = new UserControl(); _userControl.Controls.Add(_host); _taskPane = CustomTaskPanes.Add(_userControl, "Pane"); _taskPane.Visible = true; 我为了简单而忽略了孩子的控制,结果是一样的。 这是如何看起来如预期的那样: 现在我把工作簿移动了一下,我得到: 显然,灰色和黑色的地区是不能预料的(与实际控制托pipe相同的结果)。 _host刷新修复了这个问题 – 重新绘制自己和孩子,但问题是我没有发现VSTO中的任何事件来检测何时移动工作簿。 问题: 那些黑色/灰色的地方从哪里来? 是否有可能避免/修复它,以及如何? (作为解决方法)是否有可能检测到工作簿窗口的移动,所以我可以刷新_host并祈祷其发生的唯一情况? (馊主意) 其他testing表明,Windows窗体控件不会遭受这种行为。 提前致谢。

如何从Excel中获取特定date范围内的数据

我正在尝试使用C#从Excel中获取数据。 我的Excel数据包含几个logging,但我需要两个date之间的数据。 我试着用下面的代码: OleDbCommand cmd=new OleDbCommand("select field1,field2,joiningdate from [Sheet1$] where joiningdate >=to_date('"+startDate+"','MM/DD/YYYY') and joiningdate <=to_date('"+endDate+"','MM/DD/YYYY')", con); 我可以通过DateTimePicker控件获取startDate和endDate的值..

查询从Excel中的Excel表格中读取数据

感谢Astander回复我的查询 我在这里用更详细的查询。 string cs = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + @"D:\\sample.xls;" + "Excel 12.0;HDR=YES;"; OleDbConnection Excelcon = new OleDbConnection(cs); OleDbDataAdapter ad = new OleDbDataAdapter(); ad.SelectCommand = new OleDbCommand("SELECT *FROM [Sheet1$]", Excelcon); DataTable dt = new DataTable(); ad.Fill(dt); return dt; 我在select语句错误: Microsoft Office Access数据库引擎找不到对象'Sheet1 $'。 确保对象存在,并且正确拼写其名称和path名称。 希望有人能帮我find一个解决scheme。

OleDbDataAdapter.Update返回行,但没有行添加到Excel电子表格

我可以一行一行地将行添加到Excel电子表格中,但速度却非常慢(对于400条logging,即使使用Prepare,也只需要1分钟)。 所以,我知道Sql是有效的,DataTable是好的。 代码工作: public void InsertFromDataTable(string strSql, DataTable dtTable, string strTableName) { if (m_oleDbHandler == null) { m_oleDbHandler = new OleDbHandler(m_strConnection); } //Do one row at a time since the DataAdapter did not work foreach (DataRow drRow in dtTable.Rows) { OleDbParmCollection cololedbParameters = new OleDbParmCollection(); foreach (DataColumn dcColumn in dtTable.Columns) { OleDbParameter odpParameter = new […]

EPPlus如何检查循环引用?

我正在使用EPPlus库build立一个excel文件,并想知道是否有一种方法使用这个库来检查公式中的循环引用? 我知道Microsoft Interop具有Range CircularReference {get; } ,但我试图避免使用它。

EPPlus:引用其他工作表的公式

我需要公式 ='C:\awp\API\dde\awp.xla'!blp(A" + i + ";$B$1) 并试图这样: ws.Cells[i, 2].Formula = @"'C:\awp\API\dde\awp.xla'!blp(A" + i + ";$B$1)"; 结果是“不可读的内容”:由Excel删除的一个破碎的公式。 如何在EPPlus的另一个工作表中引用单元格? 感谢您的input!

无法通过C#中的openxml从Excel中获取格式化的值

能够使用openXML从excel中获取logging wbPart.SharedStringTablePart.SharedStringTable.Elements<SharedStringItem>().ElementAt(Convert.ToInt32(cellItem.CellValue.Text)).InnerText 和 cellItem.CellValue.Text 但值r不显示格式,因为它是在Excel文本。 例如在excel文件中:Dec09(单元格格式为“mmmyy”),但使用openxml值为40156 在excel文件中:26.7198404785643%,但是使用openxml值是0.26719840478564305 我需要与Excel表格相同的值。