Tag: c#

在C#中使用OLEDB读取密码保护的excel文件

在我的C#应用​​程序中,我使用OLEDB连接string“ Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test.xls;Extended Properties=\"Excel 8.0;HDR=NO;ReadOnly=true;IMEX=1\" ”来读取Excel文件。 为了读取受密码保护的文件,我尝试在连接string中添encryption码字段,但无法读取文件。 我想知道是否有任何方法来读取使用OLEDB密码保护的Excel文件,如果我事先知道它的密码。

如何使用asp.net创build和下载excel文档

如何使用asp.net创build和下载excel文件? 目的是使用XML,LINQ或其他方式通过浏览器发送Excel文档给客户。 编辑: 用例 客户在浏览器中加载gridview(使用ajax框架),gridview直接链接到一个sql数据库。 我把一个button“出口到Excel”,让客户保存在他的电脑上的这个gridview数据ansd我想推出一个干净的Excel下载。 这里提出的解决scheme是不干净的,像发送一个HTML文件,并将头文件改为Excel文件等,我现在正在寻找一个简单的Codeplex解决scheme,我会让你知道。

防止Excel退出

我缺less一个Excel.Application.Quit或一个Excel.Application.BeforeQuit事件。 有没有人知道模拟这些事件的解决方法? 我通过COM Interop从C#WinForms应用程序访问Excel。 给定一个Excel.Application对象,我怎么能: 最好防止Excel退出? 如果这是不可能的,我怎么能至less注意到 Excel退出? 请注意:因为我有一个Excel的应用程序的COM引用,当用户退出 Excel时, Excel进程不会退出 。 虽然这听起来是矛盾的,但事实就是如此。 通过“退出”,我的意思是用户点击窗口右上angular的“退出”或“十字button”。 窗口closures,文件被卸载,加载项被卸载,以及Excel除了我不知道的东西之外的任何东西。 但是我仍然可以使用Application对象来“恢复”进程并使Excel重新可见,尽pipe加载项然后丢失了,而且我还不确定尚未定义的状态是什么。 为了摆脱这个问题,我希望在一开始就取消退出(如果存在的话,可以考虑BeforeQuit Cancel = true ),或者至less在Excel退出时通知,这样我就可以释放COM对象使stream程真正退出,下一次我再次需要Excel时,我会知道我需要先启动它。 不幸的是,这是一个恶性循环: 只要Excel运行,我需要COM对象 。 所以我不能在 Excel退出前处理它们。 另一方面,只要COM对象存在,即使Excel假装退出,进程也不会退出,所以我不能等待进程退出事件或类似事件。 我有一种令人不快的感觉,就是我要把头撞到一堵砖墙上。

如何获得使用范围内的整个列?

我想获得一列,但限制它使用范围… public static Excel.Application App = new Excel.Application(); public static Excel.Workbook WB; WB = App.Workbooks.Open("xxx.xls", ReadOnly: true); var sheet = (WB.Sheets[1] as Excel.Worksheet); // returns 65536 rows, I want only 82 (used range) sheet.get_Range("F:F"); sheet.UsedRange.get_Range("F:F").Rows.Count; // 65536 我怎么才能得到它?

使用Microsoft.Office.Interop.Excel从excel 2010读取数据

我无法读取Excel中的数据。 这是我正在使用的代码: using Excel = Microsoft.Office.Interop.Excel; Excel.Application xlApp = new Excel.Application(); Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"Book1.xlsx", 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); Excel._Worksheet xlWorksheet = (Excel._Worksheet)xlWorkbook.Sheets[1]; Excel.Range xlRange = xlWorksheet.UsedRange; int rowCount = xlRange.Rows.Count; int colCount = xlRange.Columns.Count; for (int i = 1; i <= rowCount; i++) { […]

如何从Excel电子表格中的C#更改工作表名称

我有一个C#应用程序,我从数据库中的数据创build大量的Excel文件。 这部分工作正常。 但是,我的用户询问是否可以修改工作表选项卡以反映数据库中的字段。 这听起来很简单,但是,当我尝试重置名称时,它告诉我它是只读的,无法设置。 我已经尝试了以下,并没有奏效: xlApp.Sheets[0].Range["A1"].Value = "NewTabName"; 还试过: xlApp.Name = "NewTabName"; 我做了谷歌search,看到了一些其他的方法,这也不适合我。 还有一些答复表示这是只读的,不能完成的。 这似乎应该是简单的事情。 我该怎么做。

如何阅读在C#打开excel文件

我想用C#读取已经打开的excel文件。 我正在使用这种方法,但它不能读取excel文件,而在Microsoft Excel中打开该文件。 FileStream stream = File.Open("myfile.xlsx", FileMode.Open, FileAccess.Read); 它给出了IOException: The process cannot access the file 'myfile.xlsx' because it is being used by another process. 我希望你明白我的意思。 我想保持excel文件打开,而文件是在Microsoft Excel中打开,我想从C#中读取它。 我正在使用C#net framework 4.0

使用hex更改Excel单元格的背景颜色会导致Excel在电子表格中显示完全不同的颜色

所以我将Excel单元格的内部颜色设置为某个值,如下所示: worksheet.Cells[1, 1].Interior.Color = 0xF1DCDB; 但是,当我在Excel中打开电子表格时,发现出现的颜色完全不同(在上述情况下,生成的电子表格中的颜色为0xDCDCEF)。 我尝试了几种不同的颜色,它总是改变它,我没有看到一种模式。 这有什么理由吗? 我甚至尝试着写Color.FromArgb(241,220,219).ToArgb()来设置颜色,并且发生了同样的事情。

Excel Interop – 绘制范围内的所有边界

我从Microsoft的文档中看到,我可以使用“xlBordersIndex”属性访问单元格的特定边界边界,例如,为单元格的左边缘设置边框样式: range.Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft].LineStyle = Excel.XlLineStyle.xlContinuous; 但是如果我只想画出所有的边界呢? 我努力了 range.BorderAround2(); 但这只是在范围本身附近画一个盒子,据我所知。 所以然后我试了 range.Cells.BorderAround2(); 认为它会通过范围内的每个单元格,并将每个单元格周围的所有边界。 这不是发生了什么。 因此,为了获得一个范围内的所有单元格的所有边界,我必须手动访问四个边界索引中的每一个?

读取Excel文件作为服务器进程

我试图find一个适当的方式来读取NT服务器操作系统上的Excel文件的内容。 我有许多使用Excel API的问题,然后遇到Office自动化的官方微软,它指出,Excel API不适合Excel自动化。 我看到的种类问题与文章中描述的类似。 有没有另一种方式,我可以读取一个Excel文件(xls,xlsx,xlsm)在服务器上(没有用户界面)的方式,不会遭受强加在Excel API中的相同types的线程/安全/许可证问题?