Tag: c#

Excel VSTO项目从Office 2013升级到Office 2016后无法加载

使用VS 2013加载项目时出现以下错误(安装了Office 2016) 无法创build项目,因为与此项目types关联的应用程序未安装在此计算机上。 您必须安装与此项目types关联的Microsoft Office应用程序。 C#项目最初创build为使用VS 2013与Office 2013和运行时作为“Visual Studio 2010 Office for Office Runtime”工具的Excel工作簿。 .Net框架也没有改变。 按照https://msdn.microsoft.com/en-us/library/bb772080.aspx,一切看起来都不错 当我查看.csproj文件时,发现Office Dll,Office版本和ProjectProperties部分的下列引用指向升级到Office后不存在的C:\ Program Files \ Microsoft Office \ Office15 \ Excel.exe 2016年 我需要在.csproj文件中手动修复以获取项目加载的所有东西是什么? <ItemGroup> <Reference Include="stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <Private>False</Private> </Reference> <Reference Include="Office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"> <Private>False</Private> <EmbedInteropTypes>true</EmbedInteropTypes> </Reference> <Reference Include="Microsoft.Vbe.Interop, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"> <Private>False</Private> <EmbedInteropTypes>true</EmbedInteropTypes> </Reference> <Reference […]

尝试将数据网格导出为ex​​cel,执行到Global axax中的Application_Error

我在互联网search的人,发现很多解决scheme出口gridview到Excel。 我尝试了所有的解决scheme,但没有一个为我工作。 build议我跟踪Application_Error模块。 当debugging我的执行去 //Global.asax protected void Application_Error(object sender, EventArgs e) { Exception exc = Server.GetLastError(); } 我得到的exception是:: exception的types'System.Web.HttpUnhandledException'被抛出。 我无法弄清楚我做错了什么。 请任何人都可以build议我,发生了什么事情。 private void ExportGridToExcel() { try { Response.Clear(); Response.Buffer = true; Response.ClearContent(); Response.ClearHeaders(); Response.Charset = ""; string FileName = "PatientCount_" + DateTime.Now + ".xls"; StringWriter strwritter = new StringWriter(); HtmlTextWriter htmltextwrtter = new HtmlTextWriter(strwritter); Response.Cache.SetCacheability(HttpCacheability.NoCache); […]

alignmentC中的数据集列

我有两组数据集:红色和绿色,我想比较两个比率之间的差异,但必须先alignment。 原始文件(前20000个条目的几行) ABCD Red Ratio Green Ratio 1 0.35 1 0.21 2 0.45 2 0.235 3 0.45 3 0.154 4 0.235 4 0.156 6 0.156 5 0.146 7 0.668 6 0.154 8 0.44 7 0.148 9 0.446 8 0.148 10 0.354 9 0.199 11 0.154 10 0.143 12 0.49 12 0.148 使用代码后,值被alignment,“extras”被删除,列向上移动。 ABCD Red Ratio […]

快速从Excel中读取数据

我有下面的代码从Excel工作表中读取数据,并将其转换为pipe道分隔文本文件。 有用。 问题在于它非常慢,因为我必须一次读取1个单元格以添加到pipe道中。 我想知道是否有更好的方法来做到这一点,即一步读取数据到内存/数组,并在那里采取行动。 public string Process(string filename) { Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; Excel.Range range; string str = ""; int rCnt = 0; int cCnt = 0; object misValue = System.Reflection.Missing.Value; xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Open(filename, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); xlWorkSheet […]

如何阅读公式的今天(),使用C#的Excel单元格?

我的excell单元格包含公式Today()。 它的值显示为mm / dd / yyyy格式。现在我试图用c#读取单元格。而我的代码如下。 _InputData = objSheet.get_Range(colNo + rowNo ).Cells.Value; 输出为mm / dd / yyyy 12:00:00 AM,因为excel单元格只显示mm / dd / yyyy。

从Asp.net应用程序下载Excel时,显示以下错误

从Asp.net应用程序下载Excel时显示以下错误[![在这里input图像描述] [1]] [1] 说明:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪,了解有关错误的更多信息以及源代码的来源。 exception详细信息:System.Runtime.InteropServices.COMException:由于没有足够的可用内存或磁盘空间,Microsoft Excel无法打开或保存更多文档。 •要提供更多内存,请closures不再需要的工作簿或程序。 •要释放磁盘空间,请从保存的磁盘中删除不再需要的文件。 [COMException(0x800a03ec):由于没有足够的可用内存或磁盘空间,Microsoft Excel无法打开或保存更多的文档。

使用c#.net在MS Excel 2010中使用数据透视表格式数据

我有一个包含太多原始数据的Excel工作表。 现在我想要使用透视表工具在同一工作簿中的另一个Excel工作表中更改特定格式的数据表示forms。 到目前为止,以所需的格式来表示数据,我在Excel中做了几个手动步骤,这些步骤在下面提到,因为这样的步骤为我提供了客户端所需的格式: select表格 插入标签 – >数据透视表 创build数据透视表对话框出现:从源表中select一个表(select要分析的数据= Sheet1!$ A:$ I) select我们希望放置数据透视表报表的新工作表。 select要添加到报告的字段 – 字段1,字段2,字段3,字段4,字段5,字段6,字段7,字段8,字段9 – 作为行标签 function区中的枢轴表工具 – >选项 – >取消select“+/-button” function区中的数据透视表工具 – >devise – >报告布局 – >以表格forms显示 在function区中的数据透视表工具 – >devise – > SubTotatls – >不显示小计 在function区中的数据透视表工具 – >devise – >总计 – >closures行和列 Excel表格的源格式如下所述 原始数据 现在我想用C#.net编程地完成所有这些手动步骤。 最终的结果应该是以下格式: 结果格式 – 数据透视表 请提及源代码来做同样的事情。

在检索excel数据时,检查单元格中的null和emptrystring

错误:附加信息:查询expression式'[SKU N#]!='''中的语法错误(缺less运算符)。 if (getFileExtension.ToLower() == ".xls") { conString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + getFileName + ";Extended Properties=\"Excel 8.0;HDR=Yes;;IMEX=1\""; ; } else if (getFileExtension.ToLower() == ".xlsx") { conString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + getFileName + ";Extended Properties=\"Excel 12.0;HDR=Yes;;IMEX=1\""; } OleDbConnection con = new OleDbConnection(conString); if (con.State == ConnectionState.Closed) con.Open(); System.Data.DataTable ExcelSheets = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, […]

添加MS Excel库到VS 2015 Express

我有我的电脑上安装了VS Express 2015和MS Office 2007。 我需要从Excel表格中读取一些值。 我添加了Microsoft Office 12.0对象库,但是我不能使用它 using Microsoft.Office.Interop.Excel; 我得到以下错误:名称空间“Microsoft.Office”中不存在types或命名空间名称“Interop”(您是否缺less程序集引用?)

导入具有2000列的Excel

我用OleDb导入有2000列的Excel文件。 所以通过使用这段代码,我可以在我的DataTable中只有255列。 我想要一些其他的方式,或者如果可能的话,这样我的DataTable 2000列。 DataTable dtExcelRecords = new DataTable(); using (OleDbConnection con = new OleDbConnection(connectionString)) { con.Open(); DataTable dtSheet = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); List<string> listSheet = new List<string>(); foreach (DataRow drSheet in dtSheet.Rows) { if (drSheet["TABLE_NAME"].ToString().Contains("$")) { listSheet.Add(drSheet["TABLE_NAME"].ToString()); } } string workSheetName = listSheet.FirstOrDefault(x => x.Contains(cCommon.sFDDetailsWorkSheetName)); OleDbCommand cmd = new OleDbCommand(string.Format("SELECT * FROM [{0}]", workSheetName.Trim()), con); […]