Tag: c# 4.0

给csv写两个单词,打开的时候会在一个excel列中显示为两行

我正在使用C#来处理notepead中的一些数据,这些数据在处理之后将写入.csv文件。 我已经这样做了,但问题是,在.csv文件的一列中,有些词必须出现两三行(相当于在Excel列中使用Alt + Enter)。 我使用了Environment.NewLine,\ r和\ n。 但我不能把它closures。 有没有办法,或根本不可能? 提前致谢。 印度Unnikrishnan。

导出到在本地主机上工作的Excel函数,但不在发布的网站上

我有这个代码导出我的GridView到Excel,它在localhost中工作,但部署后它不起作用。 单击我的导出button时收到的错误是运行时错误。 protected void EXPORT_BUTTON_Click(object sender, EventArgs e) { Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application(); // creating new WorkBook within Excel application Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing); String DATA1 = "DATA1"; String DATA2 = "DATA2"; ExportToExcel(app, workbook, DATA_1, DATA1); workbook.Worksheets["Sheet1"].Delete(); workbook.Worksheets["Sheet2"].Delete(); workbook.Worksheets["Sheet3"].Delete(); ExportToExcel(app, workbook, DATA_2, DATA2); string FolderPath = ServerName + DirectoryLocation + DirectoryFolder + ExportsFolder; var […]

datatable到Excel中的C#

在将Datatable导出到Excel时,有些列会落入新行。 我不知道是什么问题。 我的代码如下: string attachment = "attachment; filename=Test.xls"; Response.ClearContent(); Response.AddHeader("content-disposition", attachment); Response.ContentType = "application/vnd.ms-excel"; string tab = ""; foreach (DataColumn dc in transposedTable.Columns) { Response.Write(tab + dc.ColumnName); //tab = "\t"; } Response.Write("\t"); int i; foreach (DataRow dr in transposedTable.Rows) { Response.Write("\n"); tab = ""; for (i = 0; i < transposedTable.Columns.Count; i++) { Response.Write(tab + […]

在读取Excel表格数据的同时保留空列名称

我正在阅读一个excel文件并将内容保存到数据库。 我有两列,第一列名是空白,第二列名是A.两列都有它下面的行。 当我使用oledbconnection执行"select * from ["+excel[i]+"]")时, 空列自动replace为F1。 我需要列表和数据,因为它可以从Excel工作表中获得。 如何避免它?

C#NPOI设置单元格样式为文本/string1-19被格式化为date/禁用任何格式化

我创build一个excel,当我写一些值的例子1-19,当我打开Excel文档,我看到1-19,但是如果我点击它然后Excel试图格式化为一个date 有没有办法迫使工作表不使用任何公式或格式? 我已经检查过,数据格式是string。 private void Test1(ref ISheet worksheet, string[] array, IWorkbook workbook, int iRow, XSSFFont font2) { var format = HSSFDataFormat.GetBuiltinFormats(); ICellStyle _TextCellStyle = workbook.CreateCellStyle(); _TextCellStyle.DataFormat = workbook.CreateDataFormat().GetFormat("@"); IRow file = worksheet.CreateRow(iRow); int iCol = 0; for (int y = 0; y < array.Length; y++) { ICellStyle style = workbook.CreateCellStyle(); style.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Grey25Percent.Index; //style.DataFormat = […]

不包括标题行的Excel列数据types

使用电子表格devise,有没有什么办法可以获得列的“可能的”数据types,不包括标题行(如果存在的话)和合理容忍稀疏的人口,而不必自己做一个样本…有没有办法去做这个? 所以例如,如果我有一个像excel行 | Customers | Sales Item | Sale Date | Contact | Quantity | | IBM | Keyboard | 28-10-2011 | | 2 | | MS | Mouse | 27-09-2011 | joe | 5 | 我期望看到 string,string,date时间,string,数字 编辑 所以我最终不得不像@Tim Anderson所build议的那样进行采样,但是我需要处理稀疏数据的情况,并且在col中冲突的types时默认为string。 (这是在一个循环遍历cols,我不能发布,因为它包含一些IP)DataValueType只是一个本地枚举和rowcount是行数的样本,因为我已经抽样我简单地忽略行0万一它是一个标题行。 private DataType GetDataTypeFromColRange(IRange range, int rowcount, int col) { var dtlist = GetValueTypes(range, […]

全局键盘挂钩(Excel)自动插件(不是VSTO)

道歉的这篇文章的长度,但我认为背景是必要的,以传达我想要实现的。 我负责更新一个旧的Excel UDF插件(它以前使用Steve Dalton的书中的JNI代码,几乎可以想象得到其他技术)。 这些函数对Excel的计算模型非常不感兴趣 – 这些函数需要几个范围,并在允许用户编辑这些数据(然后保存并上传到远程服务器)的同时(在另一个线程中)写回数据。 所有这些使得加载速度非常缓慢,但是给用户提供了必要的灵活性来根据需要改变数据。 我已经将它迁移到C#(它通过WSDL从远程Java服务器获取数据),但是我发现大多数函数被调用了50次以上,并且运行速度远远低于原始插件(这是一个使用自动插件Extensibility.IDTExtensibility2 – 所以没有VSTO技巧可用)。 在绝望的情况下,我决定尝试将UDF的块重写为数组函数,而不是接受input(Excel会抱怨覆盖数组) – 显然这比现在的用户快了几个数量级,但是缺less关键要求能够修改输出数据。 实现Excel没有提供任何之前编辑是提交validationcallback事件(我玩过Worksheet.OnEntry并添加了一个VBComponent,但它没有被触发之前有关覆盖数组或列表数据validation的错误)。 我认为这将是足够简单的实现一个全局的键盘钩子,所以开始编写一些Windows窗体来拦截编辑(只是一个文本框单个表单条目和一个combobox单元格与列表数据validation),也得到它从剪贴板复制数据所选范围。 目前,所有这一切都是由定制的上下文菜单项(或双击)驱动的,这将不会被用户所接受 – 我必须至less能够拦截F2,Ctl + V并直接在活动单元格上打字。 但我不知道如何在自动插件中注册全局键盘钩子。 所以我的问题是, 是否有可能拦截每一个编辑尝试,并提供我自己的处理? 或者失败了,我如何注册一个全局的键盘钩子来拦截F2,Ctl + V并直接在活动单元格上打字? 我试过在这里find的钩子在WPF / C#中使用全局键盘钩子(WH_KEYBOARD_LL),但无法获得App.xaml + App.xaml.cs在这种情况下工作(这是我第一次遇到C#和Windows编程一般) ,所以可能有人需要启发我的App.xaml + App.xaml.csconfiguration()。 请注意; 这不是一个VSTO插件,它使用Extensibility.IDTExtensibility2实现。 更新编辑: @TimWilliams和@CharlesWilliams询问为什么我以前的版本 ,它读写它的函数的参数,有这么多重复的调用。 所有的function都有一个强制性的ID键参数,大部分也取一个date或date范围,下面是发生了什么(在相当大的工作簿〜30张图): 当第一次加载工作簿时,函数会调用所有的过期值(先前保存的)值,但是这些值都被忽略,因为每个函数中的C#的第一行是对备份模型的(快速)testing,以查看模型是否已经加载,没有函数参数被检查/解组。 用户select通过web服务或以前的序列化文件加载模型。 可视化更新被禁用,并且设置表按照顺序填充一些数据; 一些关键的date(date的开始和结束 – 不同的date范围在不同的纸张上用EMONTH +/- 12计算),一些其他的静态数据(作者/编辑者名字等等),最后是强制性的键ID(标识模型数据) 现在,自动化插件中的每个函数的方法都有id键,所以如果find数据,它将返回,否则将使用来自函数参数的默认值。 (注意:模型维护函数所请求的对象字段的副本,以便知道输出的内容。对于进一步的调用,如果数据存在于caching层中,它将被更新(原始模型数据或先前caching值)与传入的函数参数 – 高速caching层和模型数据的差异后来上传到web服务) – 没有很好地解释“caching”实际上是一个包装模型数据相同的数据结构 […]

Excel Worksheet.Usedrange返回什么types

我正在将应用程序从vba转换为C#。 这很慢。 这是我的第一个挑战 在vba中,我可以将一个Excel范围分配给一个vba二维数组: Dim strSheetArray as Variant strSheetArray = xlSH.UsedRange … debug.print strSheetArray[1,2] 'etc. 当我转换为C#时,“UsedRange”属性似乎返回一个对象。 我似乎无法像数组那样使用该对象,从而导致代码错误。 那么,如何引用返回的对象,以便我可以遍历它呢? 而且,只要我在它,细胞没有types,所以我怎么使用它们(有些是数字,其他是文本等)。这是很容易的VBA …. 谢谢您的帮助。

使用OleDb从Excel中select具有多个范围的列

我目前的需求是我需要从一个单一的查询Excel表(DUMMY.xls)中select多个范围,并把它放到一个DataTable(fooData1):正如你可以从上面的图像看到我有从A到F列。我筛选出从A到B和从D到F到单个数据表(fooData1)的列。 生成的数据表的内容应该是这样的: NAME ID Date Hobby COLOR DEEPAK 1 Coding Black ASTHA 2 Singing Red GAURAV 3 Dancing Blue BHAVESH 4 6/29/2007 Painting Green 我的代码是这样的: 并在执行查询时出现以下错误 “SQL语句结束后发现的字符” DataTable fooData1 = new DataTable(); System.Data.OleDb.OleDbConnection dbConnection = new System.Data.OleDb.OleDbConnection (@"Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data Source=C:\Dummy.xls;" + @"Extended Properties=""Excel 8.0;HDR=Yes;"""); dbConnection.Open(); try { string strSql = "SELECT * FROM [Sheet1$A:B] […]

在64位环境中使用Excel

我想要打开一个Excel文件并更新特定工作表中的特定单元格。例如,更新Book1单元格A1 ,更新Book2 B3以及… 什么是最好的方式做到这一点在64位窗口? 目前我用OWC11做这个,并改变IIS 7并设置Enable 32-bit Applications为true ,并且它工作正常。 出于某种原因,我无法将Enable 32-bit Applications为true ,并将其更改为False我的程序不起作用 谢谢