rt java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class XwpfTUtil {
/*String filePath = "/sta.docx";
InputStream is;
XWPFDocument doc;
Map<String, Object> params = new HashMap<String, Object>();
{
params.put("${name}", "xxx");
params.put("${sex}", "男");
params.put("${political}", "共青團員");
params.put("${place}", "sssss");
params.put("${classes}", "3102");
params.put("${id}", "213123123");
params.put("${qq}", "213123");
params.put("${tel}", "312313213");
params.put("${oldJob}", "sadasd");
params.put("${swap}", "是");
params.put("${first}", "asdasd");
params.put("${second}", "綜合事務部");
params.put("${award}", "asda");
params.put("${achievement}", "完成科協網站的開發");
params.put("${advice}", "沒有建議");
『貳』 請教:java從資料庫獲取數據導出docx,有多個表格,請問怎麼導出
截一段代碼給你參考
//先導入jar包org.apache.poi.ss.usermodel.Workbook
Workbook wb = ExcelUtils.create(file.getInputStream());
//獲取導入模板的第一個sheet
Sheet sheet1 = wb.getSheetAt(0);
//將sheet1校驗結果寫到最後一列excel上
for (int i = 0; i < sheet1.getPhysicalNumberOfRows(); i++) {
//i=1就是sheet1的第一行,以此類推
Row row = sheet1.getRow(i);
Cell cell = row.createCell(14);//創建單元格
cell.setCellValue("aaaa");//設置單元格的值(i=1時表示第1行第14列)
Cell cell2 = row.createCell(13);
cell2.setCellValue("aaa");
}
FileOutputStream os = new FileOutputStream(request.getRealPath(ApplicationStatic.FILETEM)+path);
wb.write(os);
os.close();
『叄』 怎麼通過JAVA往WORD的里寫一張帶數據表格
首先需載入你的SQLCUTE是不能錯(指明點就是資料庫的連接)創建的方法查詢所有的數據:publicListAllObject();得到所有的數據,我們就可以開始了(最好是寫在你的Service中)創建表格輸出的方法(我們的數據肯定是以流的形式寫進寫出的,表明點就是下載該文件\\恩文件上傳下載應該會吧)好話不多說,開始工程在service中定義方法:(){//為了好看點我就採用和word同類的軟體exel//相當於我們創建的exel的窗體,可以查看exel的表格樣式就是.xslHSSFWorkbookwb=newHSSFWorkbook();//創建sheet1一般我們的exel默認的有三個exelHSSFSheeths=wb.createSheet("sheet1");//創建row行HSSFRowhr=hs.createRow(0);//創建單元格HSSFCellhc=hr.createCell((short)0);//設置單元格的編碼hc.setEncoding(HSSFCell.ENCODING_UTF_16);//設置表頭的value的值hc.setCellValue("ID");//還要創建多個表頭的值hc=hr.createCell((short)1);hc.setEncoding(HSSFCell.ENCODING_UTF_16);hc.setCellValue("姓");hc=hr.createCell((short)2);hc.setEncoding(HSSFCell.ENCODING_UTF_16);hc.setCellValue("名");hc=hr.createCell((short)3);hc.setEncoding(HSSFCell.ENCODING_UTF_16);hc.setCellValue("年齡");//從資料庫中查出所有的用戶Listls=iuser.AllListUser();//便利所有的數據for(inti=0;i<ls.size();i++){//得到第i個數據Userus=ls.get(i);//把數據放入表格中i是從0開始讀取所以我們加一hr=hs.createRow(i+1);//設置編碼hc=hr.createCell((short)0);hc.setEncoding(HSSFCell.ENCODING_UTF_16);//設置序號也就是在ID下的值,同樣的是從0開始hc.setCellValue(i+1);//我們已經從資料庫中獲得了數據,所以我們可以從user中取出hc=hr.createCell((short)1);hc.setEncoding(HSSFCell.ENCODING_UTF_16);hc.setCellValue(us.getUname());hc=hr.createCell((short)2);hc.setEncoding(HSSFCell.ENCODING_UTF_16);hc.setCellValue(us.getSuname());hc=hr.createCell((short)3);hc.setEncoding(HSSFCell.ENCODING_UTF_16);hc.setCellValue(us.getAge());}//這里是在硬碟上創建一個臨時文件用於用戶下載,這是第一種方法//放入文件,所以必須創建個文件StringfileName=com.test.util.CUtils.getRandomString(5);//上面的文件名是用隨機數寫的,這樣就會沒相同的文件,便於輸寫fileName=newStringBuffer().append(fileName).append(".xls").toString();finalFilefile=newFile(fileName);//將文件輸出到我們的硬碟try{OutputStreamos=newFileOutputStream(file);//把我們的數據輸出到我們的HSSFWookbook中,以寫入文件中wb.write(os);os.close();}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}//構建個輸入流InputStreamis=null;try{//輸入文件is=newFileInputStream(file);}catch(FileNotFoundExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnis;//返回該輸入流,完成}寫完之後,可在servlet中直接調用,service中的getInputStream方法你可以寫方法接收,也可以寫流接收,因為過來的方法有返回值(){returniuserservice.getInputStream();}這里後面就是你自己的事勒,簡單點就是重定向某個頁面(查看成功啦)等等這有個弊端就是在Disk(磁碟)創建了多個文件,也就是不用的時候就是垃圾數據。實在有點勉強的話,加我 :236133039幫你解答(實戰操作)
『肆』 java編程:有人做過導出word文件,並且word中附帶excel文件的那種模式嗎
假如是.docx文件,用XWPFDocument 這個就可以,poi裡面的類
然後是XWPFTable,XWPFTableRow,XWPFTableCell類。
分別獲得表格,表格的行,表格的格
doc就多了,網上隨便找
但是假如又有段落還有表格,我也卡在這了,假如找到方法,麻煩提醒我一下!!
『伍』 如何用Java實現將word里的表格數據寫入到excel中去
教你一方式,這個源代碼肯定是需要自己寫的。應該沒有現成的。
是這樣的,你可以把word文檔,另存為xml格式的一個文件。
在用JAVA.IO的字元流去讀取那個xml文件。
之後寫入到生成的EXCEL表格中去。
『陸』 java中如何導出word
如果電腦里裝的有WORD,可以通過JS新建一個WORD,並把頁面文件拷貝進去。我這有操作Excel的,word的差不多。<input type="button" onclick="javascript:method1('tableExcel');" value="導入到EXCEL"> <SCRIPT LANGUAGE="javascript"> function method1(tableid) {//整個表格拷貝到EXCEL中 var curTbl = document.getElementById(tableid); var oXL = new ActiveXObject("Excel.Application"); //創建AX對象excel var oWB = oXL.Workbooks.Add(); //獲取workbook對象 var oSheet = oWB.ActiveSheet; //激活當前sheet var sel = document.body.createTextRange(); sel.moveToElementText(curTbl); //把表格中的內容移到TextRange中 sel.select(); //全選TextRange中內容 sel.execCommand("Copy"); //復制TextRange中內容 oSheet.Paste(); //粘貼到活動的EXCEL中 oXL.Visible = true; //設置excel可見屬性 } function method2(tableid) //讀取表格中每個單元到EXCEL中 { var curTbl = document.getElementById(tableid); var oXL = new ActiveXObject("Excel.Application"); //創建AX對象excel var oWB = oXL.Workbooks.Add(); //獲取workbook對象 var oSheet = oWB.ActiveSheet; //激活當前sheet var Lenr = curTbl.rows.length; //取得表格行數 for (i = 0; i < Lenr; i++) { var Lenc = curTbl.rows(i).cells.length; //取得每行的列數 for (j = 0; j < Lenc; j++) { oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText; //賦值 } } oXL.Visible = true; //設置excel可見屬性 } function getXlsFromTbl(inTblId, inWindow) { try { var allStr = ""; var curStr = ""; //alert("getXlsFromTbl"); if (inTblId != null && inTblId != "" && inTblId != "null") { curStr = getTblData(inTblId, inWindow); } if (curStr != null) { allStr += curStr; } else { alert("你要導出的表不存在!"); return; } var fileName = getExcelFileName(); doFileExport(fileName, allStr); } catch(e) { alert("導出發生異常:" + e.name + "->" + e.description + "!"); } } function getTblData(inTbl, inWindow) { var rows = 0; //alert("getTblData is " + inWindow); var tblDocument = document; if (!!inWindow && inWindow != "") { if (!document.all(inWindow)) { return null; } else { tblDocument = eval(inWindow).document; } } var curTbl = tblDocument.getElementById(inTbl); var outStr = ""; if (curTbl != null) { for (var j = 0; j < curTbl.rows.length; j++) { //alert("j is " + j); for (var i = 0; i < curTbl.rows[j].cells.length; i++) { //alert("i is " + i); if (i == 0 && rows > 0) { outStr += " \t"; rows -= 1; } outStr += curTbl.rows[j].cells[i].innerText + "\t"; if (curTbl.rows[j].cells[i].colSpan > 1) { for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) { outStr += " \t"; } } if (i == 0) { if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) { rows = curTbl.rows[j].cells[i].rowSpan - 1; } } } outStr += "\r\n"; } } else { outStr = null; alert(inTbl + "不存在!"); } return outStr; } function getExcelFileName() { var d = new Date(); var curYear = d.getYear(); var curMonth = "" + (d.getMonth() + 1); var curDate = "" + d.getDate(); var curHour = "" + d.getHours(); var curMinute = "" + d.getMinutes(); var curSecond = "" + d.getSeconds(); if (curMonth.length == 1) { curMonth = "0" + curMonth; } if (curDate.length == 1) { curDate = "0" + curDate; } if (curHour.length == 1) { curHour = "0" + curHour; } if (curMinute.length == 1) { curMinute = "0" + curMinute; } if (curSecond.length == 1) { curSecond = "0" + curSecond; } var fileName = "leo_zhang" + "_" + curYear + curMonth + curDate + "_" + curHour + curMinute + curSecond + ".csv"; //alert(fileName); return fileName; } function doFileExport(inName, inStr) { var xlsWin = null; if (!!document.all("glbHideFrm")) { xlsWin = glbHideFrm; } else { var width = 6; var height = 4; var openPara = "left=" + (window.screen.width / 2 - width / 2) + ",top=" + (window.screen.height / 2 - height / 2) + ",scrollbars=no,width=" + width + ",height=" + height; xlsWin = window.open("", "_blank", openPara); } xlsWin.document.write(inStr); xlsWin.document.close(); xlsWin.document.execCommand('Saveas', true, inName); xlsWin.close(); } </SCRIPT>]
『柒』 java中怎麼將word文檔怎麼生成圖片
public class CreateWordDemo
{
public void createDocContext(String file)
throws DocumentException,IOException {
//
設置紙張大小
Document document = new
Document(PageSize.A4);
//
建立一個書寫器(Writer)與document對象關聯,通過書寫器(Writer)可以將文檔寫入到磁碟中
RtfWriter2.getInstance(document, new
FileOutputStream(file));
document.open();
//
設置中文字體
BaseFont bfChinese =
BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H",
BaseFont.NOT_EMBEDDED);
//
標題字體風格
Font titleFont = new Font(bfChinese, 12,
Font.BOLD);
//
正文字體風格
Font contextFont = new Font(bfChinese, 10,
Font.NORMAL);
Paragraph title = new
Paragraph("標題");
//
設置標題格式對齊方式
title.setAlignment(Element.ALIGN_CENTER);
title.setFont(titleFont);
document.add(title);
String contextString =
"iText是一個能夠快速產生PDF文件的java類庫。"
+ " \n"//
換行
+
"iText的java類對於那些要產生包含文本,"
+ "表格,圖形的只讀文檔是很有用的。它的類庫尤其與java
Servlet有很好的給合。"
+
"使用iText與PDF能夠使你正確的控制Servlet的輸出。";
Paragraph context = new
Paragraph(contextString);
//
正文格式左對齊
context.setAlignment(Element.ALIGN_LEFT);
context.setFont(contextFont);
//
離上一段落(標題)空的行數
context.setSpacingBefore(5);
//
設置第一行空的列數
context.setFirstLineIndent(20);
document.add(context);
//
利用類FontFactory結合Font和Color可以設置各種各樣字體樣式Paragraph underline = new Paragraph("下劃線的實現",
FontFactory.getFont(
FontFactory.HELVETICA_BOLDOBLIQUE, 18,
Font.UNDERLINE, new Color(0, 0,
255)));
document.add(underline);
// 設置 Table
表格
Table aTable = new
Table(3);
int width[] = { 25, 25, 50
};
aTable.setWidths(width);//
設置每列所佔比例
aTable.setWidth(90); // 占頁面寬度
90%
aTable.setAlignment(Element.ALIGN_CENTER);//
居中顯示
aTable.setAlignment(Element.ALIGN_MIDDLE);//
縱向居中顯示
aTable.setAutoFillEmptyCells(true); //
自動填滿
aTable.setBorderWidth(1); //
邊框寬度
aTable.setBorderColor(new Color(0, 125, 255)); //
邊框顏色
aTable.setPadding(2);//
襯距,看效果就知道什麼意思了
aTable.setSpacing(3);//
即單元格之間的間距
aTable.setBorder(2);//
邊框
//
設置表頭Cell haderCell = new
Cell("表格表頭");
haderCell.setHeader(true);
haderCell.setColspan(3);
aTable.addCell(haderCell);
aTable.endHeaders();
Font fontChinese = new Font(bfChinese, 12, Font.NORMAL,
Color.GREEN);
Cell cell = new Cell(new Phrase("這是一個測試的 3*3 Table 數據",
fontChinese));
cell.setVerticalAlignment(Element.ALIGN_TOP);
cell.setBorderColor(new Color(255, 0,
0));
cell.setRowspan(2);
aTable.addCell(cell);
aTable.addCell(new
Cell("#1"));
aTable.addCell(new
Cell("#2"));
aTable.addCell(new
Cell("#3"));
aTable.addCell(new
Cell("#4"));
Cell cell3 = new Cell(new Phrase("一行三列數據",
fontChinese));
cell3.setColspan(3);
cell3.setVerticalAlignment(Element.ALIGN_CENTER);
aTable.addCell(cell3);
document.add(aTable);
document.add(new
Paragraph("\n"));
//
添加圖片 Image.getInstance即可以放路徑又可以放二進制位元組流
Image img =
Image.getInstance("d:\\img01800.jpg");
img.setAbsolutePosition(0,
0);
img.setAlignment(Image.RIGHT);//
設置圖片顯示位置
img.scaleAbsolute(60, 60);//
直接設定顯示尺寸
//
img.scalePercent(50);//表示顯示的大小為原尺寸的50%
// img.scalePercent(25,
12);//圖像高寬的顯示比例
//
img.setRotation(30);//圖像旋轉一定角度
document.add(img);
document.close();
}public static void main(String[] args)
{
CreateWordDemo word = new
CreateWordDemo();
String file =
"d:/demo1.doc";
try
{
word.createDocContext(file);
} catch (DocumentException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
『捌』 java用poi導出word文檔,我要導出一個表格,表格的單元格中還要有一個表格,請問怎麼實現
有個最簡單,不用使用任何 poi 或其他第三方類庫的方法生成 excel ,或 word ,
你把一個生成好的 word 例子用文件另存為 xml , docx 之類,然後你再直接用記事本去打開這個 docx ,你就會發現是 xml 格式,
這個時候,你在程序裡面就直接用普通代碼生成這個 xml 就可以了。