如何以编程方式检索Excel中的单元格注释?

我最近将一些大型Excel 2010电子表格(导​​出为CSV导入)导入数据库。 我现在被告知,单元格的评论是缺less的(我甚至不知道在原来的Excel文件中有单元格的评论,我只有CSV)。

我需要searchExcel文件的每一行,find包含单元格注释的单元格,抓住注释并将其添加到该行的数据库中(数据库引用电子表格中的行号,所以如果我只能提取行号和所有行在那一行的单元格评论,这是完美的)

我的技能是在PHP和Perl。 理想情况下,我将使用PHP来读取和处理数据,但使用别的输出文本/ csv,然后我可以parsing与PHP将工作得很好。

有没有人知道一种方法来提取这些单元格的评论,或有任何指针?

谢谢!

使用PHPExcel库。 对工作表进行评论。 而工作表的getComments()方法将返回一个由其单元格地址索引的评论对象数组。

编辑

include '/PHPExcel_Library/Classes/PHPExcel.php'; $inputFileType = 'Excel5'; $inputFileName = 'CS2template_all_products_v12.xls'; $objPHPExcelReader = PHPExcel_IOFactory::createReader($inputFileType); $objPHPExcel = $objPHPExcelReader->load($inputFileName); $sheet = $objPHPExcel->getActiveSheet(); $comments = $sheet->getComments(); foreach($comments as $cellID => $comment) { echo $cellID,PHP_EOL; var_dump($comment->getText()->getPlainText()); } 

请注意,我的示例使用了一个Excel .xls文件,但该方法的工作方式与使用.xlsx文件的“Excel2007”一样方便地replace$ inputFileType

我不能赞扬这个。 我从这个网站得到: http : //chandoo.org/wp/2009/09/03/get-cell-comments/

只需在VBA中插入一个模块,然后复制并粘贴到:

 Function getComment(incell) As String ' accepts a cell as input and returns its comments (if any) back as a string On Error Resume Next getComment = incell.Comment.Text End Function 

只要把它放在一个单元格,参考单元格的评论和自动填充你的心中的内容。 例如:

 =getComment(C42) 

如果你需要一行的行号,你可以这样做:

 =row() 

不知道你是否需要知道,但我只是想我会join。