答案 0 :(得分:0)
如果是import java.util.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.dataformat.xml.*;
public class XMLTest
{
public static void main(String[] args)
{
String input =
"<TransactionList>\n" +
" <Transaction type=\"C\" amount=\"1000\" narration=\"salary\" />\n" +
" <Transaction type=\"X\" amount=\"400\" narration=\"rent\"/>\n" +
" <Transaction type=\"D\" amount=\"750\" narration=\"other\"/>\n" +
"</TransactionList>";
try {
XmlMapper xmlMapper = new XmlMapper();
xmlMapper.setDefaultUseWrapper(false);
// this is how we tell Jackson the target type of the deserialization
JavaType transactionListType = xmlMapper.getTypeFactory().constructCollectionType(List.class, Transaction.class);
List<Transaction> transactionList = xmlMapper.readValue(input, transactionListType );
System.out.println(transactionList);
} catch (Exception e) {
e.printStackTrace();
}
}
public static class Transaction
{
public String type;
public int amount;
public String narration;
@Override
public String toString() {
return String.format("{ type:%s, amount:%d, narration:%s }", type, amount, narration);
}
}
}
,则XSSFSheet.lockAutoFilter(false)和XSSFSheet.lockSort(false)将设置在受保护的工作表中启用自动过滤和排序的属性。
当然必须在保护纸张之前设置自动过滤器本身。设置XSSFSheet
仅在受保护的工作表中启用用途自动过滤器。
对于使用排序,必须设置一个允许用户编辑的范围。这是因为虽然排序单元格的值会有所改变,因为行的内容以及排序中所有单元格的内容可能必须在排序时进行交换。
在lockAutoFilter(false)
GUI中,这是通过Excel
- &gt;进行的。 Review tab
。在Allow Users to Edit Ranges
中,我们必须向CTProtectedRange添加CTWorksheet。
注意apache poi
的使用需要faq-N10025中提到的所有模式CTProtectedRange
的完整jar。
完整示例:
ooxml-schemas-1.3.jar