java poi模板导出word后用微软的word打不开,但是wps可以,跪求大
楼主你好,首先你检测一下你的word是否正常,方法是:点开始,再点运行,输入winword /safe(注意,/前面有一个空格),看看是否能打开word,如果可以,那么word是正常的,没有问题。
那么楼主打不开word可能是通用模板的问题了,通用模板的具体路径为:C:\Documents and Settings\Administrator\Application Data\Microsoft\Templates,把这个文件夹下的内容全部彻底删除,然后再去打开word,它会自动生成一个默认的通用模板,问题应该就能解决了!。
我想用POI在Word里插入一张图片,这是我的测试代码
public void addPicture(string filepath, string oldfileName, uint id) { System.IO.FileStream gfs = new System.IO.FileStream(filepath, System.IO.FileMode.Open, System.IO.FileAccess.Read); XWPFParagraph para = doc.CreateParagraph(); XWPFRun r = para.CreateRun(); XWPFPicture pic = r.AddPicture(gfs, (int)NPOI.XWPF.UserModel.PictureType.JPEG, oldfileName, 1000000, 1000000); NPOI.OpenXmlFormats.Dml.WordProcessing.CT_Inline inline = r.GetCTR().GetDrawingList()[0].inline[0]; inline.docPr.id = id;//默认插入少了这个ID号,它就是图片的序号,从 1开始编号的。
这个是我折腾了一整天弄才弄好的。 gfs.Close(); }。
poi写入excel,office打开无显示
程序太多,看不过来,下面是我们系统里面的能正常使用的代码,你参考一下,看看能不能帮到你。
public static List getXSSFResult(Workbook wb, int ignoreRows) { List result = new ArrayList(); XSSFCell cell = null; int rowSize = 0; for (int sheetIndex = 0; sheetIndex XSSFSheet st = (XSSFSheet) wb.getSheetAt(sheetIndex); // 第一行为标题,不取 for (int rowIndex = ignoreRows; rowIndex XSSFRow row = st.getRow(rowIndex); if (row == null) { continue; } int tempRowSize = row.getLastCellNum() + 1; if (tempRowSize > rowSize) { rowSize = tempRowSize; } String[] values = new String[rowSize]; Arrays.fill(values, ""); boolean hasValue = false; for (short columnIndex = 0; columnIndex String value = ""; cell = row.getCell(columnIndex); if (cell != null) { // 注意:一定要设成这个,否则可能会出现乱码 // cell.setEncoding(HSSFCell.ENCODING_UTF_16); switch (cell.getCellType()) { case XSSFCell.CELL_TYPE_STRING: value = cell.getStringCellValue(); break; case XSSFCell.CELL_TYPE_FORMULA: // 导入时如果为公式生成的数据则无值 if (!cell.getStringCellValue().equals("")) { value = cell.getStringCellValue(); } else { value = cell.getNumericCellValue() + ""; } break; case XSSFCell.CELL_TYPE_NUMERIC: if (DateUtil.isCellDateFormatted(cell)) { Date date = cell.getDateCellValue(); if (date != null) { value = new SimpleDateFormat("yyyy/MM/dd") .format(date); } else { value = ""; } } else { value = new DecimalFormat("0").format(cell .getNumericCellValue()); } break; case XSSFCell.CELL_TYPE_BLANK: break; case XSSFCell.CELL_TYPE_ERROR: value = ""; break; case XSSFCell.CELL_TYPE_BOOLEAN: value = (cell.getBooleanCellValue() == true ? "Y" : "N"); break; default: value = ""; } } if (columnIndex == 0 && value.trim().equals("")) { break; } values[columnIndex] = rightTrim(value); hasValue = true; } if (hasValue) { result.add(values); } } } return result; }@SuppressWarnings("deprecation") public static List getHSSFResult(Workbook wb, int ignoreRows) { List result = new ArrayList(); HSSFCell cell = null; int rowSize = 0; for (int sheetIndex = 0; sheetIndex { HSSFSheet st = (HSSFSheet) wb.getSheetAt(sheetIndex); // 第一行为标题,不取 for (int rowIndex = ignoreRows; rowIndex { HSSFRow row = st.getRow(rowIndex); if (row == null) { continue; } int tempRowSize = row.getLastCellNum() + 1; if (tempRowSize > rowSize) { rowSize = tempRowSize; } String[] values = new String[rowSize]; Arrays.fill(values, ""); boolean hasValue = false; for (short columnIndex = 0; columnIndex { String value = ""; cell = row.getCell(columnIndex); if (cell != null) { // 注意:一定要设成这个,否则可能会出现乱码 // cell.setEncoding(HSSFCell.ENCODING_UTF_16); switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_STRING: value = cell.getStringCellValue(); break; case HSSFCell.CELL_TYPE_NUMERIC: if (HSSFDateUtil.isCellDateFormatted(cell)) { Date date = cell.getDateCellValue(); if (date != null) { value = new SimpleDateFormat("yyyy-MM-dd") .format(date); } else { value = ""; } } else { value = new DecimalFormat("0").format(cell .getNumericCellValue()); } break; case HSSFCell.CELL_TYPE_FORMULA: // 导入时如果为公式生成的数据则无值 if (!cell.getStringCellValue().equals("")) { value = cell.getStringCellValue(); } else { value = cell.getNumericCellValue() + ""; } break; case HSSFCell.CELL_TYPE_BLANK: break; case HSSFCell.CELL_TYPE_ERROR: value = ""; break; case HSSFCell.CELL_TYPE_BOOLEAN: value = (cell.getBooleanCellValue() == true ? "Y" : "N"); break; default: value = ""; } } if (columnIndex == 0 && value.trim().equals("")) { break; } values[columnIndex] = rightTrim(value); hasValue = true; } if (hasValue) { result.add(values); } } } return result; }。
使用poi 如何在生成word 添加横线
在一篇Word文档中,一般情况下我们将所有页面均设置为横向或纵向。
但有时也需要将其中的某些页面设置为其它页面方向不同,或者根本就是没有规律,横向与纵向的页面掺杂在一起。那么如何才能让一个Word文档中同时存在横向和纵向两种方向的页面呢?能不能随心所欲地调整页面方向呢? 细心的读者可能会发现,当选择菜单命令“文件”|“页面设置”,打开“页面设置”对话框后,在其左下方有一个“应用于”下拉列表。
使用这个下拉列表,我们可以任意设置页面的方向。分不同情况介绍如下。
(1)如果一篇文章的前边设置一个方向,如纵向,而后边都设置为横向,则可以先将插入点定位到纵向页面的结尾,或要设置为横向页面的页首,在“页面设置”对话框中单击“横向”,然后在“应用于”下拉列表中选择“插入点之后”。 (2)如果要将某些选定的页面设置为某一个方向,可以先选中这些页面中所有的内容,然后在“应用于”下拉列表中选择“所选文字”。
(3)如果文档中以标题样式分为许多小节,可以选中要改变页面方向的节,然后在“应用于”下拉列表中选择“所选节”。如果不选某节,而只是将插入点定位到该节中,则还可以选择“本节”。
设置完成后,可以在预览视图中适当缩小显示比例,查看更改的结果,如图中所示。 推而广之,其实不仅可以将页面方向任意地应用到不同的页面,“页面设置”对话框中的其它设置选项,如纸张类型、版式、页边距等,都可以类似地对不同页面采用不同的设置,读者朋友不妨试一下。
excel poi 使用HSSFWorkbook 导出的excel 用2007版本的office打开不
2007版本的需要使用XSSFWorkbook来处理,如果不确定读取的excel版本的话可以写的if判断下如果后缀为".xls"创建HSSFWorkbook 否则创建 XSSFWorkbook来对文件进行操作即可.Workbook excelWB = null;Sheet oneSheet = null;Row oneRow = null;Cell oneCell = null;。
..if("xls".equals(excFilSuff)){ excelWB = new HSSFWorkbook(excelFile); }else{ excelWB = new XSSFWorkbook(excelFile); }//获取第0个sheet对象oneSheet = excelWB.getSheetAt(0);//获取每行对象oneRow = oneSheet.getRow(rowNum);// 获取第几列对象oneCell = oneRow.getCell(cellNum);。
java 使用POI导出Excel文件,打开导出文件时报错
在保护状态下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