标签: excel-2007

Python:写入Excel 2007+文件(.xlsx文件)

是否有一个Python模块可以编写Excel 2007+文件?
我有兴趣编写一个超过65535行的文件,只有Excel 2007+支持它.

python excel excel-2007 openpyxl

14
推荐指数
4
解决办法
2万
查看次数

为什么VBA TypeOf运算符会失败

我已经和Excel 2007问题争吵好几天了.以下列出了我能想到的所有可能相关的事实:

  1. IDetailSheet是在VBA项目中声明的具有多个方法的类,它在其类初始化程序中引发错误,因此无法实例化(使其成为抽象).

  2. Option Explicit在所有模块中设置.

  3. VBA项目中的十个工作表实现 IDetailSheet并干净地编译(整个项目也是如此).

  4. CDetailSheets是在VBA项目中声明的类,它包装Collection对象并将Collection对象公开为IDetailSheet的Collection .它还公开了一些额外的方法来在所有集合中执行IDetailSheet的某些方法.

  5. 在其类初始值设定项(从Workbook _ Open事件处理程序调用并分配给全局变量)中,CDetailSheet执行以下代码以填充专用集合DetailSheets:

    Dim sht as EXCEL.WorkSheet
    For Each sht in ActiveWorkbook.Worksheets
      If TypeOf sht is IDetailSheet Then
        Dim DetailSheet as IDetailSheet
        Set DetailSheet = sht
        DetailSheets.Add DetailSheet, DetailSheet.Name
      End If
    Next sht
    
    Run Code Online (Sandbox Code Playgroud)
  6. 在某些功能区回调中,运行以下代码:

       If TypeOf ActiveWorkbook.ActiveSheet is IDetailSheet Then
          Dim DetailSheet as IDetailSheet
          Set DetailSheet = ActiveWorkbook.ActiveSheet
          DetailSheet.Refresh  *[correction]*
       End If
    
    Run Code Online (Sandbox Code Playgroud)
  7. 在识别出其他稳定性问题之后,所有ActiveX控件都已从工作簿中删除(最初有几十个).已创建Fluent Interface功能区以替换最初与ActiveX控件关联的功能.

  8. 公司模板中有一个Hyperion加载项,但未在此工作簿中使用.

完成所有操作后,运行工作簿时会出现以下症状: …

excel vba excel-2007 excel-vba

14
推荐指数
1
解决办法
9046
查看次数

必须为CSV文件保存两次

编辑现有的CSV文件后,单击"保存"将提示消息对话框"如果将其保存为CSV(逗号分隔),则工作簿中的某些功能可能会丢失".然后我点击"保存".之后,当我单击"关闭"关闭CSV时,再次提示消息对话框"想要将更改保存到'sample.csv'".为什么我要保存两次?怎么解决?谢谢

excel excel-2007

14
推荐指数
1
解决办法
9074
查看次数

使用excel vba过滤掉多个条件

我在A列,1,2,3,4,5和A,B,C中有8个变量.

我的目标是过滤掉A,B,C并仅显示1-5.

我可以使用以下代码执行此操作:

My_Range.AutoFilter Field:=1, Criteria1:=Array("1", "2", "3","4","5"), _
    Operator:=xlFilterValues
Run Code Online (Sandbox Code Playgroud)

但代码的作用是过滤变量1到5并显示它们.

我不会做相反的事情,但通过过滤出A,B,C并显示变量1到5,产生相同的结果

我试过这段代码:

My_Range.AutoFilter Field:=1, Criteria1:=Array("<>A", "<>B", "<>C"), _
    Operator:=xlFilterValues
Run Code Online (Sandbox Code Playgroud)

但它没有用.

为什么我不能使用这段代码?

它给出了这个错误:

运行时错误1004范围类的autofilter方法失败

我怎么能这样做?

excel vba excel-2007 excel-2010

14
推荐指数
1
解决办法
18万
查看次数

如何使用C#将自定义XML添加到打开的Excel 2007工作簿?

我正在尝试使用C#将自定义XML添加到打开的Excel 2007工作簿中.我使用Microsoft.Office.Interop.Excel作为接口.我发现有一个CustomXMLPart类,但我无法弄清楚如何使用它.最初我希望代码简单如下:

CustomXMLPart myXMLPart = new CustomXMLPart(xmlString);

myWorkBook.XMLCustomParts.Add(myXMLPart);

但这并不接近工作.

我尝试过在线查找示例,但是他们在讨论Packages,Addins,OpenXML,VSTO流等时非常复杂.我已经解压缩了一个合适的工作簿(xlsx)并发现它有docProps/custom.xml元素.

我只是想在保存之前将类似的custom.xml添加到新工作簿(2007).这可能吗?请注意我无法安装任何其他软件包或库.

编辑:我在调查此问题方面取得了一些进展.我相信我有正确的Office引用(COM下的Microsoft Office 12.0对象库)和Excel互操作引用(GAC下的Microsoft.Office.Interop.Excel).

声明

Microsoft.Office.Core.CustomXMLParts myCustomXMLParts;
Run Code Online (Sandbox Code Playgroud)

然而,编译

Microsoft.Office.Core.CustomXMLParts myCustomXMLParts =
    Microsoft.Office.Interop.Excel.Workbook.CustomXMLParts;
Run Code Online (Sandbox Code Playgroud)

导致错误消息:错误CS0029:无法将类型"Microsoft.Office.Core.CustomXMLParts"隐式转换为"Microsoft.Office.Core.CustomXMLParts".

当我将鼠标悬停在Excel CustomXMLParts属性上时,它声称返回一个CustomXMLParts对象,在某种意义上,它是一个Microsoft.Office.Core.CustomXMLParts对象,但与Office程序集中的对象不完全相同.所以这里显然有一些不相容但我无法解决它.我安装了Microsoft Office Professional Plus 2007(12.0.6612.1000)和Office 2007主互操作程序集(12.0.4518.1014).

编辑:我很确定这是Office DLL的问题.在添加 - 引用上我看到"Microsoft Office 12.0对象库",可以添加它没有任何错误.它似乎只是参考文献下的"办公室".但是,它似乎对编译器不可见,同时仍然声称Microsoft.Office.Core是在未引用的程序集中定义的,并指定程序集'office',Version = 12.0.0.0.

我的Office引用链接到Microsoft Shared/OFFICE12下的MSO.DLL,并在Properties下有Major Version 2 Minor Version 4.这有关系吗?或者是错误消息只是表明由于某种原因它没有处理这个引用?

编辑:添加COM对象"Microsoft Office 12.0对象库"似乎肯定是问题.从其他论坛帖子我发现其他人看到"Microsoft.Office.Core"的引用出现,但我只看到"Office".我已经尝试直接编辑.csproj文件,这确实给了"Microsoft.Office.Core",但它仍然无法正常工作.我能真正得出的唯一结论是我的Office 12 Professional Plus的MSO.DLL(版本(12.0.6612.1000)实际上并不包含Microsoft.Office.Core程序集,或者无论如何都不会正确地公开它们.

c# xml excel excel-2007 excel-interop

14
推荐指数
1
解决办法
1573
查看次数

如何在Excel中按组计算数据

我在excel文件中有程序使用数据,数据有日期和时间.我想总结一下这个信息,即每小时每天都有多少用户使用这个应用程序.如何使用excel公式?

样本数据:

Jun 01, 09:03AM
Jun 01, 10:00AM
Jun 01, 10:50AM
Jun 01, 11:00AM
Jun 01, 11:26AM
Jun 02, 01:00PM
Jun 02, 03:00PM
Jun 02, 04:04PM
Jun 02, 08:00PM
Jun 02, 11:00AM
Jun 02, 12:00PM
Jun 01, 10:50AM
Jun 01, 11:00AM
Jun 02, 11:00AM
Jun 02, 12:00PM
Jun 02, 01:00PM
Jun 03, 08:00PM
Jun 03, 09:00PM
Run Code Online (Sandbox Code Playgroud)

excel excel-2007 excel-formula

13
推荐指数
1
解决办法
5万
查看次数

如何使用C#将单元格聚焦到Excel VSTO中?如何在VSTO中使用C#选择第一个单元?

如何使用C#将单元格聚焦到Excel VSTO中?

如何在VSTO中使用C#选择第一个单元?

请帮忙代码......

c# vsto excel-2007

13
推荐指数
1
解决办法
2万
查看次数

如何获取目录中具有ESY扩展名的所有文件的列表?

在VBA中,如何获取特定目录中具有特定扩展名的所有文件的列表?

我无法做到Application.FileSearch,因为我正在使用excel 2007

filesystems search file-extension vba excel-2007

13
推荐指数
1
解决办法
3万
查看次数

Excel VBA:将activecell变为粗体的功能

我的模块中有以下功能.

Function Colorize(myValue)
    ActiveCell.Select
    Selection.Font.Bold = True
    Colorize = myValue
End Function
Run Code Online (Sandbox Code Playgroud)

将使用此功能的单元格应该变为粗体 - 但是,我没有收到任何错误消息,但是很遗憾,但它没有变为粗体.我错过了什么?

谢谢

excel vba excel-2007 excel-vba

13
推荐指数
1
解决办法
13万
查看次数

使用openpyxl编辑Excel2007文件(.xlsx)而不更改自己的样式?

我有一个.xlsx文件要编辑,我发现openpyxl可以操作Excel 2007文件.我只想更改某些单元格中的值并保持其他设置不变.

但在我浏览完文档后,我找不到编辑现有文件的示例.它只演示了读取.xlsx文件并写入新文件.

我尝试以下方式编辑现有文件,但在保存之后,文件中的样式已被删除(如字体,颜色):

from openpyxl.reader.excel import load_workbook
wb=load_workbook(r'd:\foo1.xlsx')
ws=wb.get_sheet_by_name('Bar')
ws.cell('A1').value= 'new_value'
# save the workbook to a new file to finish the editing
# but the style settings has been removed (such like font, color) in the new file
wb.save(r'd:\foo2.xlsx')
Run Code Online (Sandbox Code Playgroud)

python excel-2007 openpyxl

13
推荐指数
1
解决办法
2万
查看次数