2017-06-16 23 views
1

JAVA + POI> System/Excel PASTEコマンドを使用できない/ブロックする方法はありますか。または、ERRORを与え、手入力を入力するときのように拒否します。BLOCK EXCEL(Javaおよびorg.apache.poi)でのPASTEの使用

私はこのExcelファイルをJava 8とorg.apache.poiでビルドします(別のライブラリが動作する可能性があります)。私は、ロックのすべての種類inplementedいる

constraint =validationHelper.createExplicitListConstraint(new String[]{"0","1","2","3","4","5","6","7","8","9"}); 
addressList = new CellRangeAddressList(0,999,0,0); 
dataValidation = validationHelper.createValidation(constraint, addressList); 
dataValidation.setShowErrorBox(true); 
sheet.addValidationData(dataValidation); 

::私は制限事項と検証のすべての種類を実装

sheet.lockObjects(true); 
sheet.lockDeleteColumns(true); 
sheet.lockDeleteRows(true); 
sheet.lockFormatCells(true); 
sheet.lockFormatColumns(true); 
sheet.lockFormatRows(true); 
sheet.lockInsertColumns(true); 
sheet.lockInsertRows(true); 
sheet.enableLocking(); 

workbook.lockStructure(); 

をしかしですが、あなたがして好きなペーストすることも可能ですメモリに貼り付けたセル。私はドロップダウン制限ロック場合でも:

Name name = workbook.createName(); 
name.setNameName("ValidationRange"); 
String reference = addressList.getCellRangeAddress(0).formatAsString("SHEET", true); 
name.setRefersToFormula(reference); 

ヘルプ素晴らしいこと、私のJavaFXアプリケーションに保存するコミュニケーションツールとしてExcelを確保するだろう= ^)

+0

VBAの 'Worksheet.SelectionChange'マクロはクリップボードをクリアして問題を解決しますか? – jsheeran

+1

https://stackoverflow.com/questions/37802988/apache-poi-how-to-restrict-the-user-to-clear-the-data-validations-in-excel-she/37817030#37817030、「Excel保存通信ツールとして ":いいえ、そうではありません。 「Excel」は* one *可能なデータ* export *形式です。しかし、データ入力ソースやデータ交換フォーマットとして「Excel」を使用することはできますか?あなたはこれをしてはいけません。確かに私の謙虚な意見。 –

+0

こんにちは@jsheeranとアクセルリヒターコメントをいただきありがとうございます。私の仕事場にいる人は、データ収集、コミュニケーション、レポート作成のためにExcelに慣れています。私は同時にExcelを好きで嫌いです。それは強力ではあるが非常に厄介なツールですが、とにかくそれを最良の方法で処理し、作業方法と統合する方法を見つけなければなりません^)。コピー貼りは、シートが開いている間に起こります。開始時にクリアすれば、それでも害はあります。おそらくjsheeranあなたは私がそれをテストできるように動作することができるいくつかのコードやマクロを共有することができます。 – irJvV

答えて

0

クイックフィックスは、マクロを定義することですそれは空ますので、これは、ユーザーを困らせるかもしれないと

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    [XFD1048576].Copy 
End Sub 

注:ユーザーがそのワークシート上のセルを選択し、ワークシートには、クリップボードに空であることが知られているセルの内容をコピーします何かを貼り付けることを意図しているかどうかにかかわらずクリップボードo細胞またはその他。また、ユーザーがマクロを無効にしたり、.xlsxとして保存したりすると、簡単に回避できます。

+0

私はこれをJavaで作成しようとします。ユーザーがスクリプトを拒否できず、ここで見つけた解決策を与えることはできません= ^) – irJvV

関連する問題