Tag: .net 2.0

Excel中的VSTO:自定义不具有执行所需的权限

在一开始 从VS2005创build一个新的Excel工作簿。 试着保存它? 无法访问.xls文件。 尝试运行它? 相同的错误,再加上标题中的自定义权限错误。 我在哪里设置权限? 编辑 我已经阅读了几个关于这个问题的问题和答案,这似乎是非常复杂的。 给我一个默认的开放安全设置,让我下载并安装工作通道closures它,这就是我所认为的。

如何确保我的Excel加载项不会加载.NET Framework 2.0的CLR?

鉴于微软将停止对.NET Framework 2.0的支持,我想确保我的Excel插件不使用.net框架2.0。 我已经使用.NET Framework 4.0重新编译了我的主要加载项,但是我有几个实用程序集,它们使用.NET Framework 2.0进行编译,仍由主加载项引用(我不能像我那样重新编译这些引用的DLL失去了这些的源代码)。 我不知道这些被引用的DLL的绑定是如何工作的。 这些DLL使用.NET运行时4.0是否与主插件的目标运行时相同,还是使用它们编译的运行时? 当我运行clrver '<Excel Process ID>' ,它告诉我该进程正在运行.NET Framework 2.0和4.0。 那么,我有很多其他的加载项在系统上,我不知道哪些使用什么运行时版本。 感谢任何帮助。

有没有办法从ExcelWorkBook获得byte ,而不是先保存到磁盘

我正在使用Microsoft.Office.Interop.Excel在C#中创buildExcel文件,追加数据,更改格式和所有。 现在我将数据保存到文件中,但是我想要将字节写入stream中,所以基本上我不想将它写入文件,然后打开它,然后将其写入stream中。 我只是想从Excel工作簿中的数据写入字节数组,然后返回它。 所以我现在做的是 xlWorkBook.SaveAs(path, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); 我想说这样的xlWorkBook.GetBytes(); 。 所以byte[]将等于从excel文件和FileStream得到的byte[] 。 提前致谢。

如何根据需要获得图纸订单,而不考虑Excel中的图纸订单

我的excel文件由以下sheets |_____|_____|____|____|____|____|____|____|____||____||____||____||____| |_____|_____|____|____|____|____|____|____|____||____||____||____||____| |_____|_____|____|____|____|____|____|____|____||____||____||____||____| \__Basic Salary__/\__Bank__/\__Contact__/\__Hourly Salary__/\__Presonal__/ 有些事情是这样的,我想按照我所要求的顺序安排他们的顺序如下 1) Personal 2) Contact 3) Salary 4) Bank 在这个顺序中,我希望不pipe我得到的表格名称是否符合我要求的顺序。

这怎么可能不相等?

我的目标:从Excel Range提取一个值,并validation这些单元格的值是否在此范围内相同; 当一个单元格的值不同于另一个时,我需要返回null。 这是一段代码: internal object GetValueFromCells(string start, string end, Formats format) { // Verifying for empty or null parameters here and throwing accordingly… try { Range cells = Excel.get_Range(start, end) as Range; object value = null; bool sameValue = false; foreach(Range cell in cells) { // This condition block shall execute only once, since […]

在ADO.NET 4.0中处理多个连接到多个Excel文件的正确方法是什么?

我有一段使用VS 2005编写的代码,可以在运行.NET 2.0的计算机上正常工作,但是在运行.NET 4.0的计算机上发生严重的崩溃。 造成问题的hte代码部分是对DataAdapter的Fill()方法的调用。 代码如下所示: private void button_Click(object sender, EventArgs e) { DataTable dt1 = new DataTable(); string connectionString = … //connects to excelfile1.xls string selectCommand = "SELECT * FROM [Sheet1$]"; using(OleDbDataAdapter adapter = new OleDbDataAdapter(selectCommand, connectionString)) { adapter.SelectCommand.Connection.Open(); adapter.Fill(dt1); } DataTable dt2 = new DataTable(); connectionString = … //connects to excelfile2.xls using(OleDbDataAdapter adapter […]

从OpenXml Excel文件中读取date

我想使用SharpZipLib从.xlsx文件中读取数据,将其解压缩(在内存中)并读取内部xml文件。 一切都很好,但承认date – 他们存储在julean格式,我需要以某种方式识别,如果一个数字是一个date或只有一个数字。 在另一个话题(不幸的是它死了,我需要快速的回答)我知道一些从马克·贝克的东西,但它还不够… “Excel将date存储为浮点值…整数部分是从1/1/1900(或1/1/1904取决于正在使用哪个日历)以来的天数,小数部分是一天中的比例(即时间部分)…… 1900年被认为是闰年这一事实稍微有些尴尬。 数字与数字唯一区分的是数字格式掩码。 如果您可以阅读格式掩码,则可以使用该格式将该值标识为date而不是数字,然后从基准date计算date值/格式。 “但date的属性”s“的值总是”1“吗?我知道它定义了风格,但也许?)” s属性引用styles.xml中的style xf条目,并不总是date条目1 …这一切都取决于在工作簿中使用了多less种不同的样式。 xf样式依次引用数字格式掩码。 要标识包含date的单元格,您需要执行样式xf – > numberformat查找,然后确定该numberformat掩码是否是date/时间numberformat掩码(而不是例如百分比或会计号码格式掩码) “另外一个问题 – 我现在正在查看style.xml的内容,在部分我看到像这样的元素:”<xf numFmtId =“14”… applyNumberFormat =“1”/>“,”<xf numFmtId = “1”… applyNumberFormat =“1”/>“等,但没有<numFmts>部分…有没有”标准“格式?或者我只是想念一些东西? 有人可以帮我吗? 提前致谢。

为什么不能设置从Excel互操作的对象?

试图获得对工作表的引用(使用Excel互操作): Excel.Application xl = new Excel.ApplicationClass(); Excel.Workbooks xlWorkBooks = xl.Workbooks; Excel.Workbook xlWorkBook = xlWorkBooks.Open(fileName, 0, false, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); // Next line crashes Excel.Worksheets xlWorkSheets = (Excel.Worksheets) xlWorkBook.Worksheets; 错误是它不能施放它: 无法将“System .__ ComObject”types的COM对象转换为“Microsoft.Office.Interop.Excel.Worksheets”types的接口。 此操作失败,因为IIC“{000208B1-0000-0000-C000-000000000046}”接口的COM组件上的QueryInterface调用失败,原因是出现以下错误:没有支持此接口(exception来自HRESULT:0x80004002(E_NOINTERFACE)) 。 我的投射不正确?

如何加快将DataTable转储到Excel工作表?

我有以下例程将DataTable转储到Excel工作表中。 private void RenderDataTableOnXlSheet(DataTable dt, Excel.Worksheet xlWk, string [] columnNames, string [] fieldNames) { // render the column names (eg headers) for (int i = 0; i < columnNames.Length; i++) xlWk.Cells[1, i + 1] = columnNames[i]; // render the data for (int i = 0; i < fieldNames.Length; i++) { for (int j = 0; […]