Tag: winforms

Excel电子表格到HTML编程

我有一个问题,我希望有人可以回答。 我正在使用.Net 3.5 Winforms和SpreadSheetGear 2010组件,并需要知道是否有一个免费或低成本的方法来将Excel工作簿转换为HTML? 是否有一个很好的XSLT转换或一些低成本或开源组件? 我可以将Excel文件保存为OpenXMLWorkbook,但该组件不允许保存为html。 任何帮助,将不胜感激。 谢谢。

即使在保护下,如何激活Application.OnKey方法

我在C#Winform应用程序中使用了一个Excel查看器。 这个查看器dynamic地打开不同数量的表单的不同的.xls文件。 我必须在应用程序开始时保护所有表单,并且还要保存sheetchange事件处理程序的结束。 现在我想让用户使用一些快捷键,如{F1}或Ctrl + S。 但是没有一个关键是工作,我认为这是因为我已经应用在床单上的保护。 我对吗? 编辑:我需要运行我的自定义方法,而不是Excel的默认方法,当这些按键被按下。所以我用 Application.OnKey("{F1}", "MyCustomMethod") 在Form_Load事件处理程序中,但{F1}button在Excel工作表上按下时没有任何事情发生。

将列添加到具有现有数据源的VSTO ListObject?

有谁知道如何将列添加到Excel中的现有列表对象,已经有一个数据源从一个SQL源绑定到它? 我只是想在该数据列的每个单元格中添加一个公式的另一列,以匹配当时显示的任何数据量。 我有以下两个例子,我迄今为止已经尝试过,1.仅在语法错误的运行时发出语法Syntax error: Missing operand before '=' operator 。 2.给出一个模糊的COMexception。 1。 Dim prodDateCol = New DataColumn("Prod Date", GetType(System.Int32), "=LEFT([Production Code],4)") ComplaintsListObject.ListColumns.Add(prodDateCol) 2。 Dim objListCol = ProdListObject.ListColumns.Add() Dim listColRange = objListCol.DataBodyRange listColRange.Cells(1, 1) = "=LEFT([Production Code],4)" 我知道或者我可以这样做,使用Excel单元格后,首先检查每次列表对象的大小变化,但在查看如何做更详细的之前,我希望有一种方法来使用列表对象本身。 任何人有任何例子或build议? 谢谢 更新:我已经稍微调整了这个testing,也看更多的.Expression的使用,它只允许某些function,所以我已经改变为SUBSTRING LEFT 。 这个例子仍然返回一个Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))的COMexceptionInvalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX)) […]

从excel导入到winforms(数据未保存)c#

在网上有很多例子,如何将excel文件中的数据导出到Winform中的Office.Interop.Excel,将excel文件存储在磁盘上。 这里有一个简单的例子: private void button1_Click(object sender, EventArgs e) { Excel.Application xlApp = new Excel.Application(); Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"C:/Users/1/Desktop/test2.xlsx"); Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1]; Excel.Range xlRange = xlWorksheet.UsedRange; int rowCount = xlRange.Rows.Count; int colCount = xlRange.Columns.Count; for (int i = 1; i < rowCount+1; i++) { for (int j = 1; j < colCount+1; j++) { textBox1.Text= […]

打开Xml Excel“Excel在<文件>中发现不可读的内容。 恢复这个工作簿的内容?“在Excel文件VB.Net写入后

在使用Open XML在excel文件中写入数据后,出现错误 错误是“Excel中发现无法读取的内容。是否要恢复此工作簿的内容? 这里是我用于使用Open XML读取/写入Excel文件的代码片段。 代码的一部分来自MSDN站点。 Private Function GetWorksheetPartByName(sheetName As String) As WorksheetPart Dim sheets As IEnumerable(Of Sheet) = _document.WorkbookPart.Workbook.GetFirstChild(Of Sheets)().Elements(Of Sheet)().Where(Function(s) s.Name = sheetName) If sheets.Count() = 0 Then ' The specified worksheet does not exist. _logger.Error(String.Format("Worksheet {0} not found in {1}", sheetName, _fileName)) 'Throw New Exception(String.Format("Worksheet {0} not found in {1}", sheetName, _fileName)) […]

使用clickonce发布winform应用程序时Excelfunction不起作用

我已经发布我的winforms客户端应用程序点击一次。 我正在使用Visual Studio 8和OS Win Server 2003 SP2。 首先使用点击一次我无法使用excel上传我的应用程序在Windows 7(64)的一部分,但它是在服务器2003(32)/ 2008(64)和Windows 8(32位)上工作。 但一些谷歌search后,我有一些build议,我已经改变。 我所做的更改列表 将OLEDB连接string更改为Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" 。 将目标平台改为X86。 从服务器中删除所有办公室组件,并重新安装AccessDatabaseEngine.exe 。 检查MIMEtypes的所有.deploy清单,所有在那里(也检查办公室扩展)。 完成这些更改后,我可以在所有操作系统上使用Excel上传。 但是现在3个版本之后,它再次停止工作。 现在我没有线索出了什么问题。

水晶报表可以导出为PDF和Excel独立的Winformsbutton单击

我必须导出我的数据库logging到PDF和excel.Exporting选项我需要执行单独的button点击,即如果我点击export2Excelbuttonexcel文件应与OpenWithSaveAs Dialogue box生成,反之亦然。我知道,在networking中它可能,但有不知道在Windows窗体应用程序。 这是可能的Windows窗体应用程序使用C#。请帮助我。

Excel加载项重点问题

我正在开发Microsoft Excel的加载项 。 我有一个button,为附加参数input创build一个表单 。 我希望用户能够select范围作为其中一个附加参数(如为图或公式select范围)。 重点是我无法find如何集中积极的工作表,而留下的forms。 我试图通过Excel.Worksheet activeSheet = Application.ActiveSheet的方式发送活动工作表的forms,然后在发生事件时将其激活,但是这不起作用。 我也尝试使用Show()方法将所有者发送到窗体,但对于加载项也是不正确的。 有一种简单的方法来停用窗体,select一个范围,然后再次激活窗体?

使用c#插入excel范围作为行和复制格式的更好的方法

在向它们写入数据之前,我必须多次插入具有许多合并单元格,样式和数字格式的范围行。 当我插入一行不复制maerged单元格,样式或数字格式等。因此,我select范围作为一行并插入相同,并复制前一行到新插入的行。 这个过程需要越来越多的时间,因为我不得不这样做了很多次。 我就是这样做的 Range rangeToInsert = Worksheet1.get_Range("a" + Convert.ToString(20), "z" + Convert.ToString(20)); Range rangeToInsertRow= rangeToInsert.EntireRow; rangeToInsertRow.Insert(app.XlInsertShiftDirection.xlShiftDown, false); Range InsertedRowRange= Worksheet1.get_Range("a" + Convert.ToString(newrowNum), "z" + Convert.ToString(newrowNum)); rangeToInsert.copy(InsertedRowRange); 请build议是否有任何优化我的代码做行插入/复制风格更快。

使用Windows窗体closures子线程更新excel文件; 返回受影响的行,但文件不更新

我正在编写一个窗体窗体应用程序(也有一个控制台附加到它的debugging线程),使我可以select一个Excel文件,并对所述文件执行操作。 该文件包含交易信息,如[date],[存储],[部门]等。 这个项目的整个目标是把每个工作分解成线程。 有四个主要工作。 1 :)拉下一个未受影响的Excel文件行并更新它。 2 :)查看数据库中的excel事务,并将生成的对象添加到内存中的列表中。 3 :)处理从数据库中提取的事务。 4 :)处理后用笔记更新excel文件。 这四个工作中的每一个都将有一个线程,除了3.这将完成主线程。 在结束会话之前,我等待线程join备份。 所以如果_Processing = false,它仍然会等待所有更新完成保存,然后再继续。 我的主要方法首先运行一个清理工作来设置任何被拉入内存但未处理的事务。 这是一个简单的方法,没有线程,只运行一个命令。 ('UPDATE [MissingTransactions $] SET Notes =''WHERE Notes ='Pulled')。 这是因为当我拉事务时,我设置Notes ='Pulled',如果作业失败,我希望这些设置为空string。 当我尝试更新文件以从主线程的子线程设置Notes ='Pulled'时,问题就会起作用。 这是我的更新方法。 这是我如何build立我的命令; 我在这一个方法中运行两个命令,一个拉和一个更新我拉的事务。 private void GetNextExcelTransaction(ref List<ITransaction> iExcelList) { Console.WriteLine("Pulling Excel Transaction"); OleDbCommand lCommand = new OleDbCommand(Commands.Commands.SelectNextAvailableTransaction); DataTable lNextTransaction = _DataAccess.ExecuteQueryCommand(lCommand, Commands.Commands.SelectNextAvailableTransaction, 0); ITransaction […]