web-dev-qa-db-ja.com

xlsxエラー:エラーを解決しようとすると、「レコードが削除されました:/xl/workbook.xmlパーツから名前付き範囲」

SSISを使用して生成したxlsxファイルがあります。このファイルへのデータは、xlsxファイルがoledbの宛先であるデータフロータスクを通じて書き込まれます。次の接続文字列をOLEDB接続の式として使用しました。

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ @[User::ExcelPath] +";
Extended Properties=\"Excel 12.0 Xml;HDR=YES\";"

ファイルは、データフロータスクの前に正常に開きます。データフロータスクの後、次のようなダイアログが表示されます。

enter image description here

[はい]をクリックすると、別のメッセージが表示されます。 enter image description here

Xmlファイルの内容は次のとおりです。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">       <logFileName>error072840_02.xml</logFileName><summary>Errors were detected in file   'C:\output\documentId-1.xlsx'</summary><removedRecords summary="Following is a list of removed records:"><removedRecord>Removed Records: Named range from /xl/workbook.xml part (Workbook)</removedRecord></removedRecords></recoveryLog>

このエラーの原因を正確に理解できません。どんな助けでもありがたいです。 TIA

11
trailblazer

解決しました。その理由はよくわかりません。いくつかの調査を行って、タブ名に関連する何かがこの問題を引き起こす可能性があることを知った。 「tab」や「tab(2)」のような名前のタブを使用する必要がありました。 xlsxがそれらを同じ名前として扱う可能性があります。

10
trailblazer

EPPlusを使用して既存のテンプレートをカスタマイズしているときに、この問題が発生しました。私にとって、ルックアップテーブルへの無効な参照が含まれているため、テンプレート自体に問題がありました。これはFormula-> Name Managerで見つかりました。

この問題が発生した場合は、テンプレートを確認することをお勧めします。

13
t_plusplus

私の場合、30文字を超えるシート(タブ)名が原因で同様のエラーが発生しました。

2
Michael Brennt

私にとっては、「MyMacro( "MyParam")」のような値が割り当てられたマクロを持つボタンでした。

0
Thomas

私個人的には、スペース/特殊文字はタブ(シート)の名前には無関係でした。名前付き範囲自体は変数のように扱われるため、スペースや特殊文字を含めることはできません

0
George Grainger

多分あなたのタブ名に特殊文字があり、タブ名で名前の範囲を定義します。タブ名は「A(1)」など、「A(1)」に変更するだけ

0
idthappy