`

word的操作

 
阅读更多
// word的操作其中有对于那个阿拉伯到大写数字的操作

package com.zte.xh.fund.util;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Map;

import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Range;

/**
 * 用来操作word的方法类
 * 
 * @author Jay_Lee
 *
 */
public class WordUtil {
	private static String[] CHINESE_MONEY = new String[] { "零", "壹", "貮", "叁",
			"肆", "伍", "陆", "柒", "捌", "玖", "拾", "佰", "仟", "萬" };

	/**
	 * 导入poi-3.12.jar和poi-scratchpad.jar
	 * 实现对word读取和修改操作
	 * 
	 * @param filePath
	 *            word模板路径和名称
	 * @param map
	 *            待填充的数据,从数据库读取/自己填写
	 * @throws IOException
	 */
	public static void readwriteWord(String filePath, Map<String, String> map,
			String toFile,String fileName) throws IOException {
		// 首先看目录存在否,不存在先创建目录
		File temp = new File(filePath);
		if (!temp.exists()) {
			temp.mkdirs();
		}
		File temp1 = new File(toFile);
		if (!temp1.exists()) {
			temp1.mkdirs();
		}
		// 读取world文档
		FileInputStream fis = new FileInputStream(new File(filePath));
		// 读取world文档
		HWPFDocument hdt = new HWPFDocument(fis);
		// 读取word文本内容
		Range range = hdt.getRange();
		// 替换文本内容
		for (Map.Entry<String, String> entry : map.entrySet()) {
			range.replaceText(entry.getKey(), entry.getValue());
		}

		ByteArrayOutputStream ostream = new ByteArrayOutputStream();
		FileOutputStream out = null;
		out = new FileOutputStream(toFile + File.separator + fileName, true);
		hdt.write(ostream);
		out.write(ostream.toByteArray());
		out.close();
	}

	// 根据金额的小写来查询其中的大写
	public static String transformMoney(String money) {
		String resultMoney = "";
		int length = money.length();
		// 如果是一位,直接返回大写数字
		if (length == 1) {
			String index = String.valueOf(money.charAt(0));
			if (index.equals("0")) {
				return "";
			} else {
				resultMoney = CHINESE_MONEY[Integer.valueOf(index)]
						+ CHINESE_MONEY[CHINESE_MONEY.length - 1];
				return resultMoney;
			}	
		}
		// 如果是2位,先判断第一位,再迭代上一个方法
		if (length == 2) {
			String index = String.valueOf(money.charAt(0));
			if (index.equals("0")) {
				resultMoney = transformMoney(money.substring(
						money.length() - 1, money.length()));
				return resultMoney;
			} else {
				String last = money.substring(money.length() - 1,
						money.length());
				if (last.equals("0")) {
					resultMoney = CHINESE_MONEY[Integer.valueOf(index)]
							+ CHINESE_MONEY[CHINESE_MONEY.length - 4]
							+ CHINESE_MONEY[CHINESE_MONEY.length - 1];
					return resultMoney;
				} else {
					resultMoney = CHINESE_MONEY[Integer.valueOf(index)]
							+ CHINESE_MONEY[CHINESE_MONEY.length - 4]
							+ transformMoney(money.substring(
									money.length() - 1, money.length()));
					return resultMoney;
				}
			}
		}
		// 三位,以此内推,记得三位可能中间有0
		if (length == 3) {
			String index = String.valueOf(money.charAt(0));
			if (index.equals("0")) {
				resultMoney = transformMoney(money.substring(
						money.length() - 2, money.length()));
				return resultMoney;
			} else {
				String indexMid = money.substring(1, 2);
				String indexEnd = money.substring(2,3);
				if (indexMid.equals("0")&&indexEnd.equals("0")) {
					resultMoney = CHINESE_MONEY[Integer.valueOf(index)]
							+ CHINESE_MONEY[CHINESE_MONEY.length - 3]+ CHINESE_MONEY[CHINESE_MONEY.length - 1];
					return resultMoney;
				}
				else if(indexMid.equals("0")){
					resultMoney = CHINESE_MONEY[Integer.valueOf(index)]
							+ CHINESE_MONEY[CHINESE_MONEY.length - 3]
							+ CHINESE_MONEY[0]
							+ transformMoney(money.substring(
									money.length() - 1, money.length()));
					return resultMoney;
				}
				else {
					resultMoney = CHINESE_MONEY[Integer.valueOf(index)]
							+ CHINESE_MONEY[CHINESE_MONEY.length - 3]
							+ transformMoney(money.substring(
									money.length() - 2, money.length()));
					return resultMoney;
				}
			}
		}
		// 四位数
		if (length == 4) {
			String index = String.valueOf(money.charAt(0));
			if (index.equals("0")) {
				resultMoney = transformMoney(money.substring(
						money.length() - 3, money.length()));
			}else{
				String indexTwo = money.substring(1,2);
				String indexThree = money.substring(2,3);
				String indexEnd = money.substring(3,4);
				if(indexTwo.equals("0")&&indexThree.equals("0")&&indexEnd.equals("0")){
					resultMoney = CHINESE_MONEY[Integer.valueOf(index)]
							+ CHINESE_MONEY[CHINESE_MONEY.length - 2]
							+ CHINESE_MONEY[CHINESE_MONEY.length - 1];
				}
				else if (indexTwo.equals("0")) {
					resultMoney = CHINESE_MONEY[Integer.valueOf(index)]
							+ CHINESE_MONEY[CHINESE_MONEY.length - 2]
							+ CHINESE_MONEY[0]
							+ transformMoney(money.substring(
									money.length() - 2, money.length()));
				}else{
					resultMoney = CHINESE_MONEY[Integer.valueOf(index)]
							+ CHINESE_MONEY[CHINESE_MONEY.length - 2]
							+ transformMoney(money.substring(
									money.length() - 3, money.length()));
				}
			}
			return resultMoney;
		}
		return null;
	}

	public static void main(String[] args) throws IOException {
		// 设置数据
		/*
		 * Map<String, String> map = new HashMap<String, String>();
		 * map.put("name", "demo1"); map.put("time", new
		 * SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
		 * readwriteWord("E:\\testDemo.doc", map, "E:\\");
		 */
		System.out.println(transformMoney("0001"));
	}
}
分享到:
评论

相关推荐

    word操作(.net)

    在.NET框架下,使用C#进行Word操作是一种常见的任务,特别是在开发办公自动化或者文档处理相关的应用时。本项目“word操作(.net)”提供了一种解决方案,它专注于处理2007及以上版本的Microsoft Word文档,利用的是...

    office办公软件word操作练习题

    "Office办公软件Word操作练习题"旨在帮助用户提升对Word的基本操作技能,包括文本输入、格式调整、页面布局、图形插入以及文档管理等方面。通过实践这些练习题,用户可以更熟练地掌握Word的各项功能,从而提高工作...

    Word操作题自动评分

    Word操作题自动评分是一种高效的方法,它利用自动化技术来评估用户在Word2010中完成的操作任务。这种评分系统通常基于对象链接和嵌入(OLE)技术,这是微软开发的一种标准,允许不同应用程序间的数据交换和交互。...

    (完整word版)WORD操作题练习.pdf

    WORD 操作题练习 PDF 文件知识点总结 摘要:本文档是一份 WORD 操作题练习 PDF 文件,内容包括设置标题、替换文字、设置字体、缩进、分栏、添加页码等多个操作题目,以及计算机病毒的由来、发展和影响等相关知识点...

    word操作综合练习题-含题目、原始文档、素材、参考的效果文档

    本压缩包提供的"word操作综合练习题-含题目、原始文档、素材、参考的效果文档"是一份非常适合高校计算机应用基础教学的资源,旨在帮助学生通过实践来提升他们的Word操作技能。 1. **题目**: 练习题涵盖了各种Word...

    c#word操作类WordHelper

    在.NET开发环境中,C#是一种常用的编程语言,用于构建各种应用程序,包括与Microsoft Office套件...通过封装复杂的Word操作,它降低了开发难度,提升了开发效率,使得非Office编程专家也能轻松处理Word文档相关的任务。

    .Net Word操作类

    本文将深入探讨.NET Word操作类的相关知识点,旨在为初学者提供一个全面的理解和实践指导。 首先,我们关注的".Net Word操作类"通常指的是`Microsoft.Office.Interop.Word`命名空间中的类,如`Application`、`...

    word操作封装类

    "Word操作封装类"就是针对Microsoft Word应用程序进行操作的一种编程抽象,它将复杂的Word API调用和功能整合到一个易于使用的类中,方便开发者进行文档的创建、编辑、格式设置等操作。以下是对这个主题的详细讲解:...

    php word 操作类

    "php word 操作类"提供了一种解决方案,它允许开发者通过PHP代码与Word文档进行交互。这种类文件通常包含了用于解析、创建和修改Word文档的各种方法,使得在服务器端无需依赖Microsoft Office软件即可实现相关功能。...

    phpword操作库

    **PHPWord操作库** 在PHP开发中,处理Microsoft Word文档(如.doc和.docx格式)是一项常见的需求。PHPWord是一个开源库,专为PHP开发者设计,用于读取、创建和编辑Word文档。这个库提供了丰富的功能,使得在服务器...

    word操作素材

    在Word操作中,掌握一些基本技巧和高级功能对于日常文档处理至关重要。"word操作素材"这个压缩包文件可能包含了各种实例、模板、教程等资源,旨在帮助用户提升Word使用技能。下面将详细介绍一些常见的Word操作知识点...

    word操作题(共十五套)

    这份"word操作题(共十五套)"的压缩包文件提供了丰富的练习题目,旨在帮助学生提升Word应用技能,特别是针对Word 2003版本的操作。通过解压并打开这些文件,学生们可以进行实际操作,熟悉并掌握各种Word功能。 1. ...

    省一级计算机Word操作试题.pdf

    Word 操作试题 本资源摘要信息主要关注 Word 操作试题,旨在帮助用户熟悉 Word 软件的基本操作和应用。通过本资源,用户可以了解 Word 软件的基本功能和使用方法,掌握基本的文档编辑和处理技能。 Word 软件概述 ...

    考试系统中Word操作题自动阅卷的实现

    根据给定的信息,本文将详细探讨“考试系统中Word操作题自动阅卷的实现”的关键技术点,主要包括Word文档格式的识别、VBA宏语言的应用以及如何利用这些技术实现自动阅卷。 ### Word文档格式的识别 Word文档因其...

    delphi中操作word

    在`Unit1.pas`文件中,你可以找到处理Word操作的核心代码。在这个文件中,开发者可能定义了如下的过程或函数: 1. 初始化Word对象:首先,需要创建一个`TWordApplication`实例并设置其属性,如`Visible`来决定Word...

    word操作练习题图文混排

    在"word操作练习题图文混排01"的资源包中,你将找到一系列练习素材,包括文本、图片以及截图,这些都是帮助你提升这一技能的宝贵材料。 1. 图文框:在Word中,图文框是用于放置和格式化文字、图片或形状的工具。你...

    计算机一级office2016word 操作练习题

    题目要求、操作步骤、word素材文字及所需图片等、编辑完成word文档

    易语言操作word文档案例

    我们可以从中学习如何使用易语言的API调用来实现具体的Word操作。`eLanUI.gif`可能是一个图形界面的示例,展示了易语言的用户界面设计。`Word2000.e.txt`可能是源代码的文本版本或者相关说明文件。 7. **...

    Word操作C#对Word操作的造作代码示例

    ### Word操作C#对Word操作的代码示例详解 #### 一、概述 本文档将详细介绍如何使用C#编程语言来实现对Microsoft Word文档的操作。通过C#与Word的交互,我们可以实现创建新文档、编辑现有文档等功能。下面将逐步...

    计算机一级word操作题.pdf

    计算机一级word操作题.pdf 本文档为计算机一级word操作题pdf,旨在考查word操作能力。该文档主要讲解了wordXP(2002)中的一些基本操作,包括设置艺术字、更改大小写、使用替换功能、修改正文样式、设置图案样式和...

Global site tag (gtag.js) - Google Analytics