0

最近、多数の大きな Excel 2010 スプレッドシート (インポート用に CSV にエクスポートされたもの) をデータベースにインポートしました。セルのコメントが欠落していると言われました (元の Excel ファイルにセルのコメントがあることさえ知りませんでした。CSV しか持っていませんでした)。

Excel ファイルの各行を検索し、セルのコメントを含むセルを見つけ、コメントを取得して、その行のデータベースに追加する必要があります (データベースはスプレッドシートの行番号を参照するため、行番号とすべてを抽出できればその行のセルのコメント、完璧です)

私のスキルは PHP と Perl です。理想的には、PHP を使用してデータを読み取って処理しますが、他の何かを使用して text/csv を出力し、それを PHP で解析することもできます。

これらのセルのコメントを抽出する方法を知っている人はいますか?

ありがとう!

4

2 に答える 2

2

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 ファイルの $inputFileType を "Excel2007" に置き換えるのと同じくらい簡単にメソッドが機能することに注意してください。

于 2012-08-08T16:25:25.110 に答える
0

私はこれを手柄にすることはできません。このウェブサイトから得た場合: 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()

あなたがそれを知る必要があるかどうかはわかりませんが、私はそれを追加すると思いました.

于 2012-08-08T20:49:22.553 に答える