python - 如何将工作表变量转换为 Python 中的列表列表?
问题描述
我通过以下方法从 excel 文件中读取表格:
workbook = excel.Workbooks.Open(filename)
inputdata=workbook.Worksheets("Values").Select() ## Select Worksheet by Name
ws1 = workbook.Worksheets("Values") #workbook.ActiveSheet.Name
当我在命令提示符下键入 ws 我得到
System.__ComObject
我可以通过以下方式访问 ws1 中的表:
print ws1.Cells(i,j).Value2
但我需要通过以下方式获得表格:
table =[[row1], [row2],[row3],...]
做 dir(ws1) 我有
['ACTIVATE', 'Activate', 'Application', 'Arcs', 'AutoFilter', 'AutoFilterMode', 'BEFOREDELETE', 'BEFOREDOUBLECLICK', 'BEFORERIGHTCLICK', 'Buttons', 'CALCULATE', 'CHANGE', '计算'、'单元格'、'ChartObjects'、'CheckBoxes'、'CheckSpelling'、'CircleInvalid'、'CircularReference'、'ClearArrows'、'ClearCircles'、'CodeName'、'Columns'、'Comments'、'CommentsThreaded' ,'ConsolidationFunction','ConsolidationOptions','ConsolidationSources','Copy','CreateObjRef','Creator','CustomProperties','DEACTIVATE','Delete','DisplayAutomaticPageBreaks','DisplayPageBreaks、“DisplayRightToLeft”、“DrawingObjects”、“Drawings”、“DropDowns”、“EnableAutoFilter”、“EnableCalculation”、“EnableFormatConditionsCalculation”、“EnableOutlining”、“EnablePivotTable”、“EnableSelection”、“Equals”、“Evaluate” 、'ExportAsFixedFormat'、'FOLLOWHYPERLINK'、'FilterMode'、'GetHashCode'、'GetLifetimeService'、'GetType'、'GroupBoxes'、'GroupObjects'、'HPageBreaks'、'Hyperlinks'、'Index'、'InitializeLifetimeService'、' LENSGALLERYRENDERCOMPLETE', 'Labels', 'Lines', 'ListBoxes', 'ListObjects', 'MailEnvelope', 'MemberwiseClone', 'Move', 'Name',“名称”、“下一步”、“OLEObjects”、“OnCalculate”、“OnData”、“OnDoubleClick”、“OnEntry”、“OnSheetActivate”、“OnSheetDeactivate”、“OptionButtons”、“大纲”、“椭圆”、“PIVOTTABLEAFTERVALUECHANGE” '、'PIVOTTABLEBEFOREALLOCATECHANGES'、'PIVOTTABLEBEFORECOMMITCHANGES'、'PIVOTTABLEBEFOREDISCARDCHANGES'、'PIVOTTABLECHANGESYNC'、'PIVOTTABLEUPDATE'、'PageSetup'、'Parent'、'Paste'、'PasteSpecial'、'Pictures'、'PivotTableWizard'、'PivotTables 'Previous'、'PrintOut'、'PrintPreview'、'PrintedCommentPages'、'Protect'、'ProtectContents'、'ProtectDrawingObjects'、'ProtectScenarios'、'Protection'、'ProtectionMode'、'QueryTables'、'Range'、'Rectangles'、'ReferenceEquals'、'ResetAllPageBreaks'、'Rows'、'SELECTIONCHANGE'、'SaveAs'、'Scenarios'、'Scripts'、'ScrollArea' , 'ScrollBars', 'Select', 'SetBackgroundPicture', 'Shapes', 'ShowAllData', 'ShowDataForm', 'SmartTags', 'Sort', 'Spinner', 'StandardHeight', 'StandardWidth', 'TABLEUPDATE', ' Tab','TextBoxes','ToString','TransitionExpEval','TransitionFormEntry','Type','Unprotect','UsedRange','VPageBreaks','Visible','XmlDataQuery','XmlMapQuery','_AutoFilter' ,'_CheckSpelling'、'_CodeName'、'_DisplayRightToLeft'、'_Evaluate'、'_ExportAsFixedFormat'、'_PasteSpecial'、'_PrintOut'、'_Protect'、'_SaveAs'、'_Sort'、'PrintOut'、'__SaveAs'、'__class '、' delattr '、' doc '、' format '、' getattribute '、' hash '、' init '、' new '、' reduce '、' reduce_ex '、' repr ' , ' setattr ', ' sizeof ', ' str ', ' subclasshook ']
我尝试了这个循环,但它增加了过多的值
innerlist=[];
mygrid=[]
for i in range(2,14):
for j in range(2,22):
innerlist.append(ws1.Cells(i,j).Value2)
mygrid.append(innerlist)
只有一点:我在另一个软件中使用 python add in,所以我不能使用 pandas 等库。我可以只使用简单的循环和算法
解决方案
推荐阅读
- unit-testing - 存根或模拟假 req、res 并通过存根函数
- android - 如何将 ImageView 附加到 BottomSheet 上方?
- angular - Angular:在选择元素的onChange上创建订阅
- math - 如何计算随时间的减少速度总和
- node.js - 从 actions-on-google 模块了解 dialogflow 服务的应用实例
- excel - 如果单元格被双击并被锁定,则显示用户表单
- php - 如何修复zend-mail中丢失的Message-ID
- java - 休息服务总是使用 Postman 返回错误 401,但集成测试正在运行
- java - 如何从基本 xml 创建一个巨大的 xml (> 2GB)
- python - Python:当所有表行都具有相同的类时,如何使用 selenium 提取特定的文本行