Tag: .net

OpenOffice的文件为xlsx

我在C#中用OpenOffice库生成一个文件 当我保存时,我正在这样做: XStorable2 xs = (XStorable2)oDoc; PropertyValue[] propVals2 = new PropertyValue[1]; propVals2[0] = new PropertyValue(); propVals2.Name = "FilterName"; propVals2.Value = uno.Any("MS Excel 97"); xs.storeToURL(fileName, propVals2); 在这一点上一切正常,该文件生成Excel 97格式… 现在,我想改变它保存在XLSX格式,所以我猜我需要改变行#5 …但我不能find该格式的值。 我试过了: propVals2.Value = uno.Any("Calc MS Excel 2007 XML"); 但它只是抛出一个空的消息例外… 我也尝试使用xs.storeAsURL …但同样的问题.. 谢谢,我感谢任何帮助。

如何在使用NPOI创build的Excel中为单元格设置validation

我使用以下代码创build了一个使用NPOI的excell文件 var workbook = new HSSFWorkbook(); var sheet = workbook.CreateSheet("Candidate"); // Add header labels var rowIndex = 0; var row = sheet.CreateRow(rowIndex); row.CreateCell(0).SetCellValue("Name"); row.CreateCell(1).SetCellValue("1,2,3"); row.CreateCell(2).SetCellValue("4,5,6"); row.CreateCell(3).SetCellValue("7,8,9"); rowIndex++; // Add data rows for (int i = 1; i <= 5; i++) { row = sheet.CreateRow(rowIndex); row.CreateCell(0).SetCellValue("Candidate" + i.ToString()); row.CreateCell(1).SetCellValue(""); row.CreateCell(2).SetCellValue(""); row.CreateCell(3).SetCellValue(""); rowIndex++; } 我只是想在每个单元格中添加一些validation。 例如: restrict […]

将命名范围结构转移到树视图(treestructure)

我有一个Excel工作表,有许多命名的范围 。 现在我想要树视图中所有命名范围的分层结构 (使用VSTO / C#)。 什么是parsing命名的范围层次结构(范围可以再次包含范围,所以有父/子关系)的最好和有效的方式,并且转移到树视图(可能具有在Excel和树视图表示之间的XML结构 )。

OLEDB连接string失败 – Excel打开时除外…?

我试图在C#中使用Microsoft.Jet.OLEDB.4.0 **编程读取Excel电子表格(.xlsm格式)的内容。 我的连接string是: Provider = Microsoft.Jet.OLEDB.4.0; Extended Properties =“Excel 8.0; HDR = YES; IMEX = 1;”“; Data Source =”C:\ Test.xlsm“ 当我执行我的代码时,它会失败,出现一个exception,声明: OldDbException未被用户代码处理 外部表格不是预期的格式。 但是,如果我在Excel中打开Test.xlsm文件并重新运行我的代码,它将毫无例外地工作,并按预期执行。 没问题,效果很好。 为什么/如何在Excel中打开特定的文件会改变我的代码访问它的方式? 使用Microsoft Jet OLEDB提供程序打开.xlsm文件的正确方法是什么? 其他信息:运行Windows 7 x64 / Excel 2010

无需打开excel文件即可读取数据

我有一个数据存储在Excel数据库列中的软件是Product_ID和Description 。 我已经包含了searchfunction,显示基于Product_ID结果。 问题是只有当Excel文件打开时才检索数据,但是我想在不打开Excel文件的情况下读取数据。 有没有办法做到这一点? 我的search代码: public Form3() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { srch(); } private void srch() { DataTable sheetData = new DataTable(); string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= 'c:\\Product Details.xlsx';Extended Properties='Excel 8.0;HDR=Yes;'"; string query = "select * from [Sheet1$]" ; DataSet excelDataSet = new DataSet(); OleDbDataAdapter da = new […]

解决方法或替代电子表格图像(图表).GetBitmap()?

我正在使用电子表格工具爬行“100K +以上”excel文件,但是我发现当Spreadsheetgear碰到一个有很多点的图表时,一切都松动了:内存不被释放,并占用大量的内存因为速度很慢。 例如,我有一个63MB的Excel文件,包含35个图表,每个96K点,得到每个这些位图占用100MB +每个并没有得到释放(至less不直到我closures工作表)。 如果我让我的程序在所有图表上运行,我最终会提交> 9GB的提交! 而且我绝对不能要求我的客户升级到支持所有文件所需的32GB +。 有没有其他办法做到这一点? 我会很好,跳过文件,这将是缓慢的&试图做到这一点(检查在系列收集点数),但似乎点访问是问题,所以这并没有帮助(只是检查points.count似乎加载所有点以及相关数据!)。 任何帮助是最受赞赏的,要么能够以另一种方式抓取graphics(使用电子表格或者使用不需要安装任何东西的库,并且支持所有的Excel文件格式),或者检查有太多graphics的方法点不使用points.count。 这是一个野蛮的问题,问一些如此具体的事情,但我真的迷失在那里。

在互操作Excel中的单元格上写图像?

我正在做一个出口到Excel。但我也必须在Excel单元格中导出图像。 public void GenerateAndSaveExcel(DataSet ds) { try { bool excelCreated = CreateExcelApplication(); bool workbookCreated = CreateWorkBook(); if (excelCreated && workbookCreated) { bool workSheetAdded = AddWorkSheet(); if (workSheetAdded) { CreateHeader(ds.Tables[0].Columns); AddRows(ds.Tables[0].Rows, ds.Tables[0].Columns); Save(@"C:\Worksheet1.xlsx"); } } else { } } catch (System.UnauthorizedAccessException) { } catch (System.Runtime.InteropServices.COMException) { } catch (System.IO.IOException) { } finally { excelApp.Quit(); workBook = […]

使用C#编写Excel文件时出现奇怪的字符

我想用C#.net创build一个excel文档。 但是在我可以正确地写入一些值之后,最后的单元格会有一些奇怪的字符,例如与我从简单的txt文件中获得的内容无关的字符: Q%R SIG5oH g7 j FnJ 9 RG8 P; K}r i : + J F ]dF Y Pd 1 C OӘ$D0 ..r 这是我的Excel创build者类: class CreateExcelDoc { Microsoft.Office.Interop.Excel.Application ExcelUygulama; Microsoft.Office.Interop.Excel.Workbook ExcelProje; Microsoft.Office.Interop.Excel.Worksheet ExcelSayfa; object Missing = System.Reflection.Missing.Value; Microsoft.Office.Interop.Excel.Range ExcelRange; string s_dosyaadi = ""; string s_veri = ""; public CreateExcelDoc() { ExcelUygulama = new Microsoft.Office.Interop.Excel.Application(); ExcelProje […]

Excel作为C#中的实时数据源

我正在创build基于.NET Framework 4.5的Window应用程序。 要求是将excel绑定到C#应用程序。 而且,只要Excel中的数据发生变化(这将在交易市场中频繁变化),同样应该在Window应用程序中同步(或更新)。 虽然研究解决scheme,我认为以下可能的答案 – (1)在Excel中与RTD服务器相反 Excel启动RTD服务器以通过IRTDUpdatEvent从实时数据源获取数据。 有什么机制,Excel发送更新或更改的数据到其他应用程序? (2)生产者 – 消费者模式 我认为可能的强大的解决scheme可以在这种模式下devise应用程序。 生产者消费者工作stream中的模式链接。 甚至有用户在这里问。 但是我没有经历过这种模式。 所以你有没有build议我这个工作与否。 (3)DevExpress RealTimeSource 我打算使用RealTimeSource绑定到gridview。 但我担心我必须每秒钟读取excel文件,将数据加载到数据集或数据表中。 然后在应用中反映出来。 所以这就是我要找的东西 – 将Excel作为实时数据源。 因为我们会在Excel文件中获取更新的数据。 从Excel中同步数据的优化和极快的方法。 我有兴趣了解所有可能的解决schemetypes,暗示或build议相同。 或者,如果您有任何指导或build议,请让我知道。

错误:使用EPPLUS DLL导出到Excel时未定义types“ExcelPackage”

我是新的Windows窗体,我有一个要求导出到Excel的DataTable。 我发现我需要在我的机器上安装Microsoft Office来使用Microsoft.Office.Interop.Excel但我没有安装。 我遇到了EPPLUS。 我下载并在我的项目中添加了对dll的引用。 但问题是,它仍然显示我的错误。 我用Imports OfficeOpenXml但这个给我一个错误。 当我再次添加引用时,错误消失, ExcelPackage (我得到错误获取颜色,任何关键字相同)。但是,当我构build应用程序或运行该应用程序它再次给我同样的错误。 using (ExcelPackage pck = new ExcelPackage(newFile)) { ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Accounts"); ws.Cells["A1"].LoadFromDataTable(dataTable, true); pck.Save(); }