怎样读取word中的复杂表格(表格套表格) 请问各位大虾一个我一直没有搞明白的问题,怎样读word文档中复杂表格(表格套表格)的行和列,怎样读取复杂表格中的内容?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 关注,只用过poi,不知道jxl是不是可以实现 可以读。应该通过OLE方式读取。具体请参考OLE,SWT等技术。 public class COMHelper { /** * * @param auto * @param name * @return */ public static Variant getProperty(OleAutomation auto, String name) { if (null == auto || StringUtils.isEmpty(name)) { return null; } int[] ids = auto.getIDsOfNames(new String[] { name }); if (null == ids || ids.length == 0) { return null; } return auto.getProperty(ids[0]); } /** * * @param auto * @param name * @param values * @return */ public static Variant getProperty(OleAutomation auto, String name, Variant[] values) { if (null == auto || StringUtils.isEmpty(name) || null == values) { return null; } int[] ids = auto.getIDsOfNames(new String[] { name }); if (null == ids || ids.length == 0) { return null; } return auto.getProperty(ids[0], values); } /** * * @param auto * @param name * @return */ public static Variant invoke(OleAutomation auto, String name) { if (null == auto || StringUtils.isEmpty(name)) { return null; } int[] ids = auto.getIDsOfNames(new String[] { name }); if (null == ids || ids.length == 0) { return null; } return auto.invoke(ids[0]); } /** * * @param auto * @param name * @param variants * @return */ public static Variant invoke(OleAutomation auto, String name, Variant[] variants) { if (null == auto || StringUtils.isEmpty(name) || null == variants) { return null; } int[] ids = auto.getIDsOfNames(new String[] { name }); if (null == ids || ids.length == 0) { return null; } return auto.invoke(ids[0], variants); } public static Variant invoke(OleAutomation auto, String name, Variant[] variants, int[] dispIds) { if (null == auto || StringUtils.isEmpty(name) || null == variants || null == dispIds) { return null; } int[] ids = auto.getIDsOfNames(new String[] { name }); if (null == ids || ids.length == 0) { return null; } return auto.invoke(ids[0], variants, dispIds); } /** * * @param name */ public static void invokeNoReply(OleAutomation auto, String name) { if (null == auto || StringUtils.isEmpty(name)) { return; } int[] ids = auto.getIDsOfNames(new String[] { name }); if (null == ids || ids.length == 0) { return; } auto.invokeNoReply(ids[0]); } /** * * @param name * @param variants */ public static void invokeNoReply(OleAutomation auto, String name, Variant[] variants) { if (null == auto || StringUtils.isEmpty(name) || null == variants) { return; } int[] ids = auto.getIDsOfNames(new String[] { name }); if (null == ids || ids.length == 0) { return; } auto.invokeNoReply(ids[0], variants); } /** * * @param name * @param variants * @param dispIds */ public static void invokeNoReply(OleAutomation auto, String name, Variant[] variants, int[] dispIds) { if (null == auto || StringUtils.isEmpty(name) || null == variants || null != dispIds) { return; } int[] ids = auto.getIDsOfNames(new String[] { name }); if (null == ids || ids.length == 0) { return; } auto.invokeNoReply(ids[0], variants, dispIds); } // /** // * // * @param auto // * @param name // * @param value // * @return // */ // public static boolean setProperty(OleAutomation auto, String name, int // value) { // Variant variant = new Variant(value); // return COMHelper.setProperty(auto, name, variant); // } // // /** // * // * @param auto // * @param name // * @param value // * @return // */ // public static boolean setProperty(OleAutomation auto, String name, // long value) { // Variant variant = new Variant(value); // return COMHelper.setProperty(auto, name, variant); // } // /** // * // * @param auto // * @param name // * @param value // * @return // */ // public static boolean setProperty(OleAutomation auto, String name, // float value) { // Variant variant = new Variant(value); // return COMHelper.setProperty(auto, name, variant); // } // /** // * // * @param auto // * @param name // * @param value // * @return // */ // public static boolean setProperty(OleAutomation auto, String name, // double value) { // Variant variant = new Variant(value); // return COMHelper.setProperty(auto, name, variant); // } // // /** // * // * @param auto // * @param name // * @param value // * @return // */ // public static boolean setProperty(OleAutomation auto, String name, // String value) { // Variant variant = new Variant(value); // return COMHelper.setProperty(auto, name, variant); // } // // /** // * // * @param auto // * @param name // * @param value // * @return // */ // public static boolean setProperty(OleAutomation auto, String name, // short value) { // Variant variant = new Variant(value); // return COMHelper.setProperty(auto, name, variant); // } // // /** // * // * @param auto // * @param name // * @param value // * @return // */ // public static boolean setProperty(OleAutomation auto, String name, // OleAutomation value) { // Variant variant = new Variant(value); // return COMHelper.setProperty(auto, name, variant); // } // // /** // * // * @param auto // * @param name // * @param value // * @return // */ // public static boolean setProperty(OleAutomation auto, String name, // IDispatch value) { // Variant variant = new Variant(value); // return COMHelper.setProperty(auto, name, variant); // } // /** // * // * @param auto // * @param name // * @param value // * @return // */ // public static boolean setProperty(OleAutomation auto, String name, // IUnknown value) { // Variant variant = new Variant(value); // return COMHelper.setProperty(auto, name, variant); // } /** * * @param auto * @param name * @param value * @return */ public static boolean setProperty(OleAutomation auto, int dispId, Variant value) { if (null == auto || null == value) { return false; } return auto.setProperty(dispId, value); } /** * * @param auto * @param name * @param value * @return */ public static boolean setProperty(OleAutomation auto, String name, Variant value) { if (null == auto || StringUtils.isEmpty(name) || null == value) { return false; } int[] ids = auto.getIDsOfNames(new String[] { name }); if (null == ids || ids.length == 0) { return false; } return auto.setProperty(ids[0], value); } /** * * @param auto * @param name * @param values * @return */ public static boolean setProperty(OleAutomation auto, String name, Variant[] values) { if (null == auto || StringUtils.isEmpty(name) || null == values) { return false; } int[] ids = auto.getIDsOfNames(new String[] { name }); if (null == ids || ids.length == 0) { return false; } return auto.setProperty(ids[0], values); } /** * * @param auto * @param name * @param values * @param ids * @return */ public static Variant getProperty(OleAutomation auto, String name, Variant[] values, int[] ids) { if (null == ids || ids.length == 0 || null == auto || StringUtils.isEmpty(name) || null == values) { return null; } int[] idsOfName = auto.getIDsOfNames(new String[] { name }); if (null == idsOfName || idsOfName.length == 0) { return null; } return auto.getProperty(idsOfName[0], values, ids); }} 上面的代码是我封装的在Java中访问COM的办法。你根据代码中的内容进行搜索相关资料就可以了。 bovy,thanks for your help,but your answer is not for my problem.Thank you all the time! 用bovy的方法创建COM对象,然后用此COM对象的提供的接口访问表格即可 刚刚看到有个java2word不知道能不能用得上..... 咋修改Jpanel,的标题? 一个非常离奇古怪的问题 用new关键字实力化一个对象时 构造方法报错 那这个对象实力化没有?? 关于Java对文件的操作 SCJP 6.0認證教戰手冊考題.214.抛异常 JFrame和Frame有何区别,在线等 100分求个正则表达式,项目很急,忙大家帮下忙! 来自java初学者的史上最菜问题,期待各位答复 新学JAVA做了个 QQ ,请大侠测试,给出建议或buf或修改意见的给源码,--UP有分 Java中PCM转WAV怎么返回文件开头加文件头呢? 页面布局 JAVA学习第三天 -0-
public class COMHelper {
/**
*
* @param auto
* @param name
* @return
*/
public static Variant getProperty(OleAutomation auto, String name) {
if (null == auto || StringUtils.isEmpty(name)) {
return null;
}
int[] ids = auto.getIDsOfNames(new String[] { name });
if (null == ids || ids.length == 0) {
return null;
}
return auto.getProperty(ids[0]);
} /**
*
* @param auto
* @param name
* @param values
* @return
*/
public static Variant getProperty(OleAutomation auto, String name,
Variant[] values) {
if (null == auto || StringUtils.isEmpty(name) || null == values) {
return null;
}
int[] ids = auto.getIDsOfNames(new String[] { name });
if (null == ids || ids.length == 0) {
return null;
}
return auto.getProperty(ids[0], values);
} /**
*
* @param auto
* @param name
* @return
*/
public static Variant invoke(OleAutomation auto, String name) {
if (null == auto || StringUtils.isEmpty(name)) {
return null;
}
int[] ids = auto.getIDsOfNames(new String[] { name });
if (null == ids || ids.length == 0) {
return null;
}
return auto.invoke(ids[0]);
} /**
*
* @param auto
* @param name
* @param variants
* @return
*/
public static Variant invoke(OleAutomation auto, String name,
Variant[] variants) {
if (null == auto || StringUtils.isEmpty(name) || null == variants) {
return null;
}
int[] ids = auto.getIDsOfNames(new String[] { name });
if (null == ids || ids.length == 0) {
return null;
}
return auto.invoke(ids[0], variants);
} public static Variant invoke(OleAutomation auto, String name,
Variant[] variants, int[] dispIds) {
if (null == auto || StringUtils.isEmpty(name) || null == variants
|| null == dispIds) {
return null;
}
int[] ids = auto.getIDsOfNames(new String[] { name });
if (null == ids || ids.length == 0) {
return null;
}
return auto.invoke(ids[0], variants, dispIds);
} /**
*
* @param name
*/
public static void invokeNoReply(OleAutomation auto, String name) {
if (null == auto || StringUtils.isEmpty(name)) {
return;
}
int[] ids = auto.getIDsOfNames(new String[] { name });
if (null == ids || ids.length == 0) {
return;
}
auto.invokeNoReply(ids[0]);
} /**
*
* @param name
* @param variants
*/
public static void invokeNoReply(OleAutomation auto, String name,
Variant[] variants) {
if (null == auto || StringUtils.isEmpty(name) || null == variants) {
return;
}
int[] ids = auto.getIDsOfNames(new String[] { name });
if (null == ids || ids.length == 0) {
return;
}
auto.invokeNoReply(ids[0], variants);
} /**
*
* @param name
* @param variants
* @param dispIds
*/
public static void invokeNoReply(OleAutomation auto, String name,
Variant[] variants, int[] dispIds) {
if (null == auto || StringUtils.isEmpty(name) || null == variants
|| null != dispIds) {
return;
}
int[] ids = auto.getIDsOfNames(new String[] { name });
if (null == ids || ids.length == 0) {
return;
}
auto.invokeNoReply(ids[0], variants, dispIds);
} // /**
// *
// * @param auto
// * @param name
// * @param value
// * @return
// */
// public static boolean setProperty(OleAutomation auto, String name, int
// value) {
// Variant variant = new Variant(value);
// return COMHelper.setProperty(auto, name, variant);
// }
//
// /**
// *
// * @param auto
// * @param name
// * @param value
// * @return
// */
// public static boolean setProperty(OleAutomation auto, String name,
// long value) {
// Variant variant = new Variant(value);
// return COMHelper.setProperty(auto, name, variant);
// }
// /**
// *
// * @param auto
// * @param name
// * @param value
// * @return
// */
// public static boolean setProperty(OleAutomation auto, String name,
// float value) {
// Variant variant = new Variant(value);
// return COMHelper.setProperty(auto, name, variant);
// }
// /**
// *
// * @param auto
// * @param name
// * @param value
// * @return
// */
// public static boolean setProperty(OleAutomation auto, String name,
// double value) {
// Variant variant = new Variant(value);
// return COMHelper.setProperty(auto, name, variant);
// }
//
// /**
// *
// * @param auto
// * @param name
// * @param value
// * @return
// */
// public static boolean setProperty(OleAutomation auto, String name,
// String value) {
// Variant variant = new Variant(value);
// return COMHelper.setProperty(auto, name, variant);
// }
//
// /**
// *
// * @param auto
// * @param name
// * @param value
// * @return
// */
// public static boolean setProperty(OleAutomation auto, String name,
// short value) {
// Variant variant = new Variant(value);
// return COMHelper.setProperty(auto, name, variant);
// }
//
// /**
// *
// * @param auto
// * @param name
// * @param value
// * @return
// */
// public static boolean setProperty(OleAutomation auto, String name,
// OleAutomation value) {
// Variant variant = new Variant(value);
// return COMHelper.setProperty(auto, name, variant);
// }
//
// /**
// *
// * @param auto
// * @param name
// * @param value
// * @return
// */
// public static boolean setProperty(OleAutomation auto, String name,
// IDispatch value) {
// Variant variant = new Variant(value);
// return COMHelper.setProperty(auto, name, variant);
// }
// /**
// *
// * @param auto
// * @param name
// * @param value
// * @return
// */
// public static boolean setProperty(OleAutomation auto, String name,
// IUnknown value) {
// Variant variant = new Variant(value);
// return COMHelper.setProperty(auto, name, variant);
// }
/**
*
* @param auto
* @param name
* @param value
* @return
*/
public static boolean setProperty(OleAutomation auto, int dispId,
Variant value) {
if (null == auto || null == value) {
return false;
}
return auto.setProperty(dispId, value);
} /**
*
* @param auto
* @param name
* @param value
* @return
*/
public static boolean setProperty(OleAutomation auto, String name,
Variant value) {
if (null == auto || StringUtils.isEmpty(name) || null == value) {
return false;
}
int[] ids = auto.getIDsOfNames(new String[] { name });
if (null == ids || ids.length == 0) {
return false;
}
return auto.setProperty(ids[0], value);
} /**
*
* @param auto
* @param name
* @param values
* @return
*/
public static boolean setProperty(OleAutomation auto, String name,
Variant[] values) {
if (null == auto || StringUtils.isEmpty(name) || null == values) {
return false;
}
int[] ids = auto.getIDsOfNames(new String[] { name });
if (null == ids || ids.length == 0) {
return false;
}
return auto.setProperty(ids[0], values);
} /**
*
* @param auto
* @param name
* @param values
* @param ids
* @return
*/
public static Variant getProperty(OleAutomation auto, String name,
Variant[] values, int[] ids) {
if (null == ids || ids.length == 0 || null == auto
|| StringUtils.isEmpty(name) || null == values) {
return null;
}
int[] idsOfName = auto.getIDsOfNames(new String[] { name });
if (null == idsOfName || idsOfName.length == 0) {
return null;
}
return auto.getProperty(idsOfName[0], values, ids);
}
}