怎样用Java、POI技术来读取Word文档,并把Word文档的原来格式完...
写 public static void main(String args[]) throws Exception { XWPFDocument doc = new XWPFDocument(); XWPFParagraph p1 = doc.createParagraph(); p1.setAlignment(ParagraphAlignment.CENTER); p1.setBorderBottom(Borders.DOUBLE); p1.setBorderTop(Borders.DOUBLE); p1.setBorderRight(Borders.DOUBLE); p1.setBorderLeft(Borders.DOUBLE); p1.setBorderBetween(Borders.SINGLE); p1.setVerticalAlignment(TextAlignment.TOP); XWPFRun r1 = p1.createRun(); r1.setBold(true); r1.setText("The quick brown fox"); r1.setBold(true); r1.setFontFamily("Courier"); r1.setUnderline(UnderlinePatterns.DOT_DOT_DASH); r1.setTextPosition(100); XWPFParagraph p2 = doc.createParagraph(); p2.setAlignment(ParagraphAlignment.RIGHT); p2.setBorderBottom(Borders.DOUBLE); p2.setBorderTop(Borders.DOUBLE); p2.setBorderRight(Borders.DOUBLE); p2.setBorderLeft(Borders.DOUBLE); p2.setBorderBetween(Borders.SINGLE); XWPFRun r2 = p2.createRun(); r2.setText("jumped over the lazy dog"); r2.setStrike(true); r2.setFontSize(20); XWPFRun r3 = p2.createRun(); r3.setText("and went away"); r3.setStrike(true); r3.setFontSize(20); r3.setSubscript(VerticalAlign.SUPERSCRIPT); XWPFParagraph p3 = doc.createParagraph(); p3.setWordWrap(true); p3.setPageBreak(true); p3.setAlignment(ParagraphAlignment.BOTH); p3.setSpacingLineRule(LineSpacingRule.EXACT); p3.setIndentationFirstLine(600); XWPFRun r4 = p3.createRun(); r4.setTextPosition(20); r4.setText("To be, or not to be: that is the question: Whether 'tis nobler in the mind to suffer The slings and arrows of outrageous fortune, Or to take arms against a sea of troubles, And by opposing end them? To die: to sleep; "); r4.addBreak(BreakType.PAGE); r4.setText("No more; and by a sleep to say we end The heart-ache and the thousand natural shocks That flesh is heir to, 'tis a consummation Devoutly to be wish'd. To die, to sleep; To sleep: perchance to dream: ay, there's the rub; ......."); r4.setItalic(true); XWPFRun r5 = p3.createRun(); r5.setTextPosition(-10); r5.setText("For in that sleep of death what dreams may come"); r5.addCarriageReturn(); r5.setText("When we have shuffled off this mortal coil,Must give us pause: there's the respectThat makes calamity of so long life;"); r5.addBreak(); r5.setText("For who would bear the whips and scorns of time,The oppressor's wrong, the proud man's contumely,"); r5.addBreak(BreakClear.ALL); r5.setText("The pangs of despised love, the law's delay,The insolence of office and the spurns......."); FileOutputStream out = new FileOutputStream("simple.docx"); doc.write(out); out.close(); }
java中怎么实现读取word.doc文档分辨标题,文号,签发日期等信息
楼主你好,首先你检测一下你的word是否正常,方法是:点开始,再点运行,输入winword /safe(注意,/前面有一个空格),看看是否能打开word,如果可以,那么word是正常的,没有问题。
那么楼主打不开word可能是通用模板的问题了,通用模板的具体路径为:C:\Documents and Settings\Administrator\Application Data\Microsoft\Templates,把这个文件夹下的内容全部彻底删除,然后再去打开word,它会自动生成一个默认的通用模板,问题应该就能解决了!
怎用用java导入、导入word形式的考试题目?
使用java中的io进行读取BufferedReader bufferedReader = null;File file = new File("文档地址+文档名.docx");if(!file.exists()){System.out.println("文件不存在");} else {bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "读取的字符格式(UTF-8或GBK)"));String lineText = null;while((lineText = bufferedReader.readLine()) != null){if (linText != null && !lineText.eq("")){System.out.println("一次读取一行,一行内容为:" + lineText);
完美解决,word文档打开是乱码怎么办
方法一打开是乱码的文档,点击“文件”里的“另存为”,在“保存类型”里选择“RTF格式”,保存之后关闭。
再打开刚才保存的文件,再次点击“另存为”,“保存类型”选择“word文档”。
方法二打开乱码的文档,在word上方找到“工具”,选择“选项”。
在弹出的对话框中,选择“编辑”,找到“使用智能段落选择范围”之后点击确定。
将内容复制,在粘贴到另一个新的word文档中,就可以恢复。
Microsoft Word是微软公司的一个文字处理器应用程序。
它最初是由Richard Brodie为了运行DOS的IBM计算机而在1983年编写的。
随后的版本可运行于Apple Macintosh (1984年), SCO UNIX,和Microsoft Windows (1989年),并成为了Microsoft Office的一部分。
一、用途1.Word XP 基本文书处理技巧及认识萤幕工具 2.快速键入中文标点符号3.中文字符放大缩小、直式通告制作,中式公函4.各款中文繁/简字体及香港常用字库运用;6.行距、段落对齐、建立清单列、定位点设定7..使用页头及页尾加入文件标题及页码8.表格及多栏制作,以方便制作报价单,会议议程及工作时间表9.加插图片、图表、文字艺术师等中文桌面印刷以制作图文并茂的文件或公司通讯10.不同资料大量合拼打印信件使用Microsoft Office Word创建和编辑信件,报告,网页或电子邮件中的文本和图形。
MS-DOS计算机开发的Word的第一代于1983年底发行,但是反响并不好,销售落后于WordPerfect等对手产品。
尽管如此,在Macintosh系统中,Word在1985年发布以后赢得了广泛的接受,尤其是对于在两年以后第二次大型发布的Word 3.01 for Macintosh (Word 3.00 由于有严重bug很快下线)。
和其他Mac软件一样,Word for Mac是一个真正的(所见即所得) 编辑器。
由于MS-DOS是一个字符界面系统,Word for DOS是为IBM PC 研发的第一个文本编辑器,在编辑的时候屏幕上直接显示的是“黑体”“斜体”等字体标识符,而不是“所见即所得”。
其他的DOS 文本编辑器,如WordStar和WordPerfect等,在屏幕显示时使用的是简单文本显示加上标识代码,或者加以颜色区别。
尽管如此,和大多数DOS软件一样,程序为了执行特定的功能,都有自己特殊的,而且往往是复杂的命令组需要使用者去记忆。
(比如在Word for DOS中,保存文件需要依次执行Escape-T-S),而大部分秘书们已经知道如何使用WordPerfect,公司就不大愿意更换成对手产品,何况提供的新优点有限。
二、格式Microsoft Word X (Mac OS X)Microsoft Word在当前使用中是占有巨大优势的文字处理器,这使得Word专用的档案格式Word 文件(.doc)成为事实上最通用的标准。
Word文件格式的详细资料并不对外公开。
Word文件格式不只一种,因为随Word软件本身的更新,文件格式也会或多或少的改版,新版的格式不一定能被旧版的程序读取(大致上是因为旧版并未内建支援新版格式的能力)。
微软已经详细公布Word 97的DOC格式,但是较新的版本资料目前仍未公开,只有公司内部、政府与研究机构能够获知。
业界传闻说某些Word文件格式的特性甚至连微软自己都不清楚。
其他与Word竞争的办公室作业软件,都必须支援事实上最通用的Word专用的档案格式。
因为Word文件格式的详细资料并不对外公开,通常这种兼容性是藉由逆向工程来达成。
许多文字处理器都有汇出、汇入Word档案专用的转换工具,譬如AbiWord或OpenOffice。
(参照文本编辑器当中关于其他竞争软件的说明。
)Apache Jakarta POI是一个开放原始码的Java数据库,其主要目标是存取Word的二进制文件格式。
不久前,微软自己也提供了检视器,能够不用Word程序就检视Word文件。
例:Word Viewer 2003。
Word 97到Word 2003之前的Word文件格式都是二进制文件格式。
不久以前,微软声明他们接下来将以XML为基础的档案格式作为他们办公室套装软件的格式。
Word 2003提供WordprocessingML的选项。
这是一种公开的XML档案格式,由丹麦政府等机构背书支持。
Word 2003的专业版能够直接处理非微软的档案规格。
跟其它Microsoft Office程序一样,Word可使用固定宏语言(宏语言)来高度定制。
(最初是WordBasic,但自从Word 97以来就变成Visual Basic)然而,这种性能也可以在文档中嵌入就像梅利莎蠕虫的电脑病毒。
这就是电脑用户需要安装防火墙和反病毒软件的另一个原因。
Microsoft's security advice人们所知道的第一个感染Microsoft Word文档的病毒叫做概念病毒,一个相对危害很小的病毒,它的出现是为了证明宏病毒出现的可能性。
急!!!java用poi导出excel文件,打开导出的文件时报错“文件错误...
两个原因: 1.你的excel模版本身有问题,可以尝试新建一个模版。
2.你的excel使用了一些POI不支持的函数。
解决办法: 另存是由excel重写了完整的文件,可以解决问题。
关闭文件例子: FileOutputStream os = new FileOutputStream("workbook.xls"); wb.write(os); os.close(); 在保护状态下execl的格式有可能正在被使用,你这边修改,准确说是线程冲突,一般excel值会作为导出文件的模板,是不会编辑的。
你可以在读的时候判断execl是否正在被使用。
下面的代码问题,你可以参考 package com.hwt.glmf.common; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.CellRangeAddress; import org.apache.poi.hssf.util.HSSFColor; /** * 导出Excel公共方法 * @version 1.0 * * @author wangcp * */ public class ExportExcel extends BaseAction { //显示的导出表的标题 private String title; //导出表的列名 private String[] rowName ; private List dataList = new ArrayList(); HttpServletResponse response; //构造方法,传入要导出的数据 public ExportExcel(String title,String[] rowName,List dataList){ this.dataList = dataList; this.rowName = rowName; this.title = title; } /* * 导出数据 * */ public void export() throws Exception{ try{ HSSFWorkbook workbook = new HSSFWorkbook(); // 创建工作簿对象 HSSFSheet sheet = workbook.createSheet(title); // 创建工作表 // 产生表格标题行 HSSFRow rowm = sheet.createRow(0); HSSFCell cellTiltle = rowm.createCell(0); //sheet样式定义【getColumnTopStyle()/getStyle()均为自定义方法 - 在下面 - 可扩展】 HSSFCellStyle columnTopStyle = this.getColumnTopStyle(workbook);//获取列头样式对象 HSSFCellStyle style = this.getStyle(workbook); //单元格样式对象 sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, (rowName.length-1))); cellTiltle.setCellStyle(columnTopStyle); cellTiltle.setCellValue(title); // 定义所需列数 int columnNum = rowName.length; HSSFRow rowRowName = sheet.createRow(2); // 在索引2的位置创建行(最顶端的行开始的第二行) // 将列头设置到sheet的单元格中 for(int n=0;n<columnNum;n++){ HSSFCell cellRowName = rowRowName.createCell(n); //创建列头对应个数的单元格 cellRowName.setCellType(HSSFCell.CELL_TYPE_STRING); //设置列头单元格的数据类型 HSSFRichTextString text = new HSSFRichTextString(rowName[n]); cellRowName.setCellValue(text); //设置列头单元格的值 cellRowName.setCellStyle(columnTopStyle); //设置列头单元格样式 } //将查询出的数据设置到sheet对应的单元格中 for(int i=0;i<dataList.size();i++){ Object[] obj = dataList.get(i);//遍历每个对象 HSSFRow row = sheet.createRow(i+3);//创建所需的行数 for(int j=0; j<obj.length; j++){ HSSFCell cell = null; //设置单元格的数据类型 if(j == 0){ cell = row.createCell(j,HSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(i+1); }else{ cell = row.createCell(j,HSSFCell.CELL_TYPE_STRING); if(!"".equals(obj[j]) && obj[j] != null){ cell.setCellValue(obj[j].toString()); //设置单元格的值 } } cell.setCellStyle(style); //设置单元格样式 } } //让列宽随着导出的列长自动适应 for (int colNum = 0; colNum < columnNum; colNum++) { int columnWidth = sheet.getColumnWidth(colNum) / 256; for (int rowNum = 0; rowNum < sheet.getLastRowNum(); rowNum++) { HSSFRow currentRow; //当前行未被使用过 if (sheet.getRow(rowNum) == null) { currentRow = sheet.createRow(rowNum); } else { currentRow = sheet.getRow(rowNum); } if (currentRow.getCell(colNum) != null) { HSSFCell currentCell = currentRow.getCell(colNum); if (currentCell.getCellType() == HSSFCell.CELL_TYPE_STRING) { int length = currentCell.getStringCellValue().getBytes().length; if (columnWidth < length) { columnWidth = length; } } } } if(colNum == 0){ sheet.setColumnWidth(colNum, (columnWidth-2) * 256); }else{ sheet.setColumnWidth(colNum, (columnWidth+4) * 256); } } if(workbook !=null){ try { String fileName = "Excel-" + String.valueOf(System.currentTimeMillis()).substring(4, 13) + ".xls"; String headStr = "attachment; filename=\"" + fileName + "\""; response = getResponse(); response.setContentType("APPLICATION/OCTET-STREAM"); response.setHeader("Content-Disposition", headStr); OutputStream out = respo...
我电脑的word怎么打不开??
[编辑本段]Microsoft Word-基本信息 第一个Windows版本的Word发售于1989年,价格是500美元。
在 Windows 3.0 发行之后的一年, 销售开始好转, (WordMicrosoft Word1.0 与 Windows 3.0 的协作比先前版本更好)。
制作一个Windows版WordPerfect的失败已证实为致命的错误。
它是Word 2.0版本,但是却作为市场主流坚实地发展起来。
Word在苹果机市场上没有强大的竞争对手,尽管有程序像Nisus Writer提供“不连续的选择”等的特色功能,这些功能直到Office XP中的Word 2002才添加。
另外,一些用户抱怨Word没有在1987年的3.01版与1991年的5.0版之间实行大的检查。
相对于它的易用性和特色功能来说,由于典雅,苹果机的Word 5.1是一个主流的文字处理器。
但是1994年发布的苹果机的6.0版却受到了广泛的嘲笑。
这是Word第一个基于Windows和Macs之间通用代码的版本;许多人抱怨它慢、简陋及占过多内存。
Windows版本也计入6.0在内以协调跨越不同平台的产品命名(尽管事实上最早的Windows版本为Word 2.0)。
Word的较晚版本拥有比文字处理更多的功能。
绘图工具可进行简单的桌面出版运作,如在文件中加设图像。
近年来已增设Collaboration、文件校对、多语言支援与及其他功能。
[编辑本段]Microsoft Word-作用 使用Microsoft Office Word创建和编辑信件,报告,网页或电子邮件中的文本和图形。
Microsoft Word使用示范MS-DOS计算机开发的Word的第一代于1983年底发行,但是反响并不好,销售落后于WordPerfect等对手产品。
尽管如此,在Macintosh系统中,Word在1985年发布以后赢得了广泛的接受,尤其是对于在两年以后第二次大型发布的Word 3.01 for Macintosh (Word 3.00 由于有严重bug很快下线)。
和其他Mac软件一样,Word for Mac是一个真正的(所见即所得) 编辑器。
由于MS-DOS是一个字符界面系统,Word for DOS是为IBM PC 研发的第一个文本编辑器,在编辑的时候屏幕上直接显示的是“黑体”“斜体”等字体 标识符,而不是“所见即所得”。
其他的DOS 文本编辑器,如WordStar和WordPerfect等,在屏幕显示时使用的是简单文本显示加上标识代码,或者加以颜色区别。
尽管如此,和大多数DOS软件一样,程序为了执行特定的功能,都有自己特殊的,而且往往是复杂的命令组需要使用者去记忆。
(比如在Word for DOS中,保存文件需要依次执行Escape-T-S),而大部分秘书们已经知道如何使用WordPerfect,公司就不大愿意更换成对手产品,何况提供的新优点有限。
[编辑本段]Microsoft Word-专业测评 Microsoft Office Word 2007 通过将一组功能完备的撰写工具与易于使用的 Microsoft Office Fluent 用户界面相结合,来帮助Microsoft Word效果图用户创建和共享具有专业外观的内容。
下面是 Office Word 2007 可以帮助您更快地创建具有专业外观的内容的 10 大理由。
1. 减少设置格式的时间,将主要精力集中于撰写文档。
Office Fluent 用户界面可在需要时提供相应的工具,使您可轻松快速地设置文档的格式。
现在,您可以在 Office Word 2007 中找到适当的功能来更有效地传达文档中的信息。
使用“快速样式”和“文档主题”,您可以快速更改整个文档中文本、表格和图形的外观,使之符合您喜欢的样式或配色方案。
2. 借助 SmartArt 图示和新的制图工具更有效地传达信息。
新的 SmartArt 图示和新的制图引擎可以帮助您使用三维形状、透明度、投影以及其他效果创建外观精美的内容 3. 使用构建基块快速构建文档。
Office Word 2007 中的构建基块可用于通过常用的或预定义的内容(如免责声明文本、重要引述、提要栏、封面以及其他类型的内容)构建文档。
这样就可以避免花费不必要的时间在各文档间重新创建或复制粘贴这些内容;还有助于确保在组织内创建的所有文档的一致性。
4. 直接从 Office Word 2007 另存为 PDF 或 XPS。
Office Word 2007 提供了与他人共享文档的功能。
您无需增加第三方工具,就可以将 Word 文档转换为可移植文档格式 (PDF) 或 XML 文件规范 (XPS) 格式,从而有助于确保与使用任何平台的用户进行广泛交流。
1 5. 直接从 Office Word 2007 中发布和维护博客。
现在,您可以直接从 Office Word 2007 发布博客。
您可以将 Office Word 2007 配置为直接链接到您的博客网站,使用丰富的 Word 体验来创建包含图像、表格和高级文本格式设置功能的博客。
6. 使用 Office Word 2007 和 Microsoft Office SharePoint Server 2007 控制文档审阅过程。
通过 Office SharePoint Server 2007 中内置的工作流服务,您可以在 Office Word 2007 中启动和跟踪文档的审阅和批准过程,帮助加速整个组织的审阅周期,而无需强制用户学习新工具。
7. 将文档与业务信息连接。
使用新的文档控件和数据绑定创建动态智能文档,这种文档可以通过连接到后端系统进行自我更新。
组织可以利用新的 XML 集成功能来部署智能模板,以协助用户创建高度结构化的文档。
8. 删除文档中的修订、批注和隐藏文本。
使用文档检查器检测并删除不需要的批注、隐藏文本或个人身份信息,以帮助确保在发布文档时不会泄露敏感信息。
...
word是什么意思
public static void drawExcel(HSSFWorkbook wb, String sheetName, String title, int n, List exlList, int[] index){ List exList =(List)exlList; int len = exList.get(0).length; // 创建一个sheet表单 HSSFSheet sheet = wb.createSheet(sheetName); Region region = null; //样式 HSSFCellStyle cellStyle1 = setStyleBorder(wb); HSSFCellStyle cellStyle2 = setStyleFontBorder(wb); // 创建标题行 HSSFRow row = sheet.createRow(0); row.setHeight((short)500); // 创建单元格 HSSFCell cell = null; if(title != null && !"".equals(title)){ region = new Region(0, (short)0, 0, (short)(len- 1)); sheet.addMergedRegion(region); cell = row.createCell(0); // 标题写入单元格 cell.setCellValue(title); cell.setCellStyle(setStyleFontSize(wb, 18)); }else{ n = n - 1; } NumberFormat formatter = NumberFormat.getNumberInstance(); formatter.setMaximumFractionDigits(8); //合计信息 Double[] sum = new Double[len]; Object[] s = null; for(int i = 0; i 0){ rs = s[j].toString().split(","); cell.setCellValue(rs[0]); l = Integer.parseInt(rs[1]); }else{ cell.setCellValue(s[j].toString()); } if(i == 0){ cell.setCellStyle(cellStyle2); //设置列宽// if(j == 0){ sheet.setColumnWidth(j, l);// }else if(j == s.length -1){// sheet.setColumnWidth(j, 5000);// }else{// sheet.setColumnWidth(j, 3000);// } }else{ cell.setCellStyle(cellStyle1); //合计统计 if(index != null){ for(int in : index){ if(in == j){ if(sum[in] == null) sum[in] = 0.0; sum[in] += Double.parseDouble(s[j].toString()); } } } } } } //合计信息 if(index != null){ region = new Region(exList.size() + 1, (short)0, exList.size() + 1, (short)(index[0]-1)); sheet.addMergedRegion(region); row = sheet.createRow(exList.size() + n); for(int i = 0; i < sum.length; i++){ cell = row.createCell(i); cell.setCellStyle(cellStyle2); if(i == 0){ cell.setCellValue("合计"); }else if(sum[i] != null){ cell.setCellValue(formatter.format(sum[i]).replace(",", "")); } } } }核心代码,我项目上使用的
转载请注明出处51数据库 » poi word 读取标题
辣条43295881