`
defrag_sly
  • 浏览: 128081 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

操作excel--稍后整理

    博客分类:
  • java
阅读更多
OfficeDrawingWithGraphics


import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFChildAnchor;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFShapeGroup;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class Line {

/**
* @param args
*/
public static void main(String[] args) {
FileOutputStream fileOut = null;

try {

HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet1 = wb.createSheet("new sheet");

// HSSFRow row = sheet1.createRow(2);
HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0,
(short) 10, 10, (short) 20, 20);

HSSFShapeGroup g = patriarch.createGroup(anchor);
g.setCoordinates(0, 0, 100, 100);
HSSFChildAnchor lAnchor = new HSSFChildAnchor(0, 100, 100, 0);
g.createShape(lAnchor);
int length = 6;
Math.abs(lAnchor.getDy1() - Math.sin(30 * Math.PI / 180) * length);
Math.abs(lAnchor.getDx1() - Math.cos(30 * Math.PI / 180) * length);
Math.abs(lAnchor.getDy1() - Math.sin(60 * Math.PI / 180) * length);
Math.abs(lAnchor.getDx1() - Math.cos(60 * Math.PI / 180) * length);

Math.abs(lAnchor.getDy2() - Math.sin(30 * Math.PI / 180) * length);
Math.abs(lAnchor.getDx2() - Math.cos(30 * Math.PI / 180) * length);
Math.abs(lAnchor.getDy2() - Math.sin(60 * Math.PI / 180) * length);
Math.abs(lAnchor.getDx2() - Math.cos(60 * Math.PI / 180) * length);

// Math.sin(60 * Math.PI / 180)*length;
// Math.cos(60 * Math.PI / 180)*length;
HSSFChildAnchor al = new HSSFChildAnchor(lAnchor.getDx1(), lAnchor
.getDy1(), (int) Math.abs(lAnchor.getDx1()
- Math.cos(30 * Math.PI / 180) * length), (int) Math
.abs(lAnchor.getDy1() - Math.sin(30 * Math.PI / 180)
* length));
HSSFChildAnchor ar = new HSSFChildAnchor(lAnchor.getDx1(), lAnchor
.getDy1(), (int) Math.abs(lAnchor.getDx1()
- Math.cos(60 * Math.PI / 180) * length), (int) Math
.abs(lAnchor.getDy1() - Math.sin(60 * Math.PI / 180)
* length));

HSSFChildAnchor atl = new HSSFChildAnchor(lAnchor.getDx2(), lAnchor
.getDy2(), (int) Math.abs(lAnchor.getDx2()
- Math.cos(30 * Math.PI / 180) * length), (int) Math
.abs(lAnchor.getDy2() - Math.sin(30 * Math.PI / 180)
* length));
HSSFChildAnchor atr = new HSSFChildAnchor(lAnchor.getDx2(), lAnchor
.getDy2(), (int) Math.abs(lAnchor.getDx2()
- Math.cos(60 * Math.PI / 180) * length), (int) Math
.abs(lAnchor.getDy2() - Math.sin(60 * Math.PI / 180)
* length));

g.createShape(al);
g.createShape(ar);
g.createShape(atl);
g.createShape(atr);

fileOut = new FileOutputStream("d:/workbook.xls");

wb.write(fileOut);
fileOut.close();

} catch (IOException io) {
io.printStackTrace();
System.out.println("io erorr :  " + io.getMessage());
} finally {
if (fileOut != null) {

try {
fileOut.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

}










import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.imageio.ImageIO;

import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFTextbox;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

;

public class TestPOI {

public static void main(String[] args) {
FileOutputStream fileOut = null;
BufferedImage bufferImg = null;
BufferedImage bufferImg1 = null;
try {

// 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
ByteArrayOutputStream byteArrayOut1 = new ByteArrayOutputStream();
bufferImg = ImageIO.read(new File("d:/Control_Treeview.jpg"));
bufferImg1 = ImageIO.read(new File("d:/Control_Treeview.jpg"));
ImageIO.write(bufferImg, "jpg", byteArrayOut);
ImageIO.write(bufferImg1, "jpg", byteArrayOut1);

// 创建一个工作薄
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet1 = wb.createSheet("new sheet");
// HSSFRow row = sheet1.createRow(2);
HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();
HSSFClientAnchor anchor3 = new HSSFClientAnchor(0, 0, 512, 255,
(short) 1, 1, (short) 10, 20);
HSSFClientAnchor anchor1 = new HSSFClientAnchor(0, 0, 512, 255,
(short) 2, 30, (short) 10, 60);
anchor1.setAnchorType(2);
// HSSFClientAnchor anchor3 = new
// HSSFClientAnchor(0,0,512,255,(short) 1,1,(short)10,20);
// 插入图片

patriarch.createPicture(anchor3, wb.addPicture(byteArrayOut
.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
patriarch.createPicture(anchor3, wb.addPicture(byteArrayOut1
.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
HSSFTextbox createComment = patriarch.createTextbox(anchor3);
createComment.setString(new HSSFRichTextString("aaaaaaaaa"));
patriarch.createSimpleShape(anchor3);

fileOut = new FileOutputStream("d:/workbook.xls");
// 写入excel文件
wb.write(fileOut);
fileOut.close();

} catch (IOException io) {
io.printStackTrace();
System.out.println("io erorr :  " + io.getMessage());
} finally {
if (fileOut != null) {

try {
fileOut.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
分享到:
评论
1 楼 xinxinlong 2013-07-18  
lAnchor.getDy1() 是什么意思

相关推荐

    excel类库,支持excel2003,2007读写操作

    Excel作为最广泛应用的工具之一,其文件格式分为多种,包括早期的Excel 2003 (.xls) 和稍后版本的Excel 2007及更高版本 (.xlsx)。对于这些文件的读写操作,通常需要借助特定的编程库或API来实现。在这个场景中,我们...

    在EXCEL中20以上带圈的数字怎么输入-输入1-100及以上带圈的数字方法.docx

    - 安装完成后,你会看到一个名称可能是乱码的字体名,请记住这个名字,因为稍后会用到它。(如果需要更改字体名称,则操作较为复杂,此处不作详细介绍。) #### 操作步骤 接下来,我们将介绍如何利用Endylau.ttf...

    Healthcare-dbm:稍后

    【标题】:“Healthcare-dbm:稍后” 【描述】:“Healthcare-dbm:稍后”这个描述似乎是在暗示这是一个关于医疗保健数据库管理系统的项目,但具体细节并未给出。可能是由于项目的开发或更新正在进行中,因此无法...

    vmware安装kylin银河麒麟高级服务器操作系统

    - **稍后安装系统**: 表示在创建虚拟机时暂时不进行操作系统安装,可以在之后选择合适的时机安装。 - **客户机操作系统**: 选择银河麒麟服务器作为客户机操作系统类型。 - **虚拟机名称位置**: 指定虚拟机的名称...

    操作系统--置换页面代码

    1. 记录下缺页中断发生时的上下文信息,以便稍后恢复。 2. 选择一个合适的页面进行置换,释放其占用的物理内存空间。 3. 从磁盘读取所需页面到刚释放的空间。 4. 更新页表,反映页面的新位置。 5. 重新执行导致缺页...

    Excel 2010电子表格_Excel2010的基本操作_保存工作簿.pdf

    **Excel 2010电子表格的基本操作:保存工作簿** 在Excel 2010中,保存工作簿是一项至关重要的操作,它确保了你在处理数据时不会因为意外情况(如电源故障或系统崩溃)而丢失任何工作。下面将详细阐述如何在Excel ...

    Assembler-in-C-by-Miki-2021:稍后再添加

    1. **汇编语言基础**:介绍汇编语言的基本语法,包括指令集、操作码、寻址模式等。 2. **C语言与汇编的交互**:讲解如何在C程序中嵌入汇编代码,以及如何使用C函数调用汇编子程序。 3. **链接与加载过程**:解释如何...

    android 程序加载中,请稍后---- ProgressDialog与线程整合应用

    在Android开发中,当应用程序需要执行耗时操作,如网络请求、数据库操作或大量计算时,为了提供良好的用户体验,我们通常会使用ProgressDialog显示一个加载指示器,告知用户程序正在后台处理,并请求他们稍等片刻。...

    queue_classic-later:稍后使用 queue_classic 做事

    QC::稍后稍后使用。 重要提示:此功能内置于 queue_classic 中,从 3.1 开始。 重要提示:此分支适用于 QueueClassic 3。请参阅分支以获取先前版本的支持。安装将此行添加到应用程序的 Gemfile 中: gem "queue_...

    virtual-wallet:稍后会更新

    虚拟钱包 稍后会更新

    Microsoft.Office.Interop.Excel.v11.0

    在本例中,它提供了对Excel对象模型的访问,使得开发者能够使用C#、VB.NET等.NET语言来创建、编辑和操作Excel工作簿、工作表和单元格。 标签 "Interop" 是关键点,它代表“互操作性”。在.NET环境中,Interop是指...

    jxl 导出 excel

    遍历这个结果集,将数据存储在适当的Java集合,如List或ArrayList中,以便稍后写入Excel。 5. **创建Excel工作簿**:使用JXL提供的`Workbook`类创建一个新的工作簿对象。这将是你的Excel文件的基础。 6. **创建...

    导入excel,处理合并表头、复杂表头、多行表头

    2.导入时,显示请稍后。。。提醒框,完毕后会自动隐藏 3.全面扫描Excel数据,将所有异常详细信息写入Excel,返回客户端,提供用户下载。方便修正错误数据。 4.支持大批量数据导入,经本人测试,3千条数据,只需短短2-...

    中小学简易成绩管理系统(excel)

    本作品采用EXCEL 公式+VBA制作,既可根据你平时使用EXCEL的习惯和方式操作充分发挥EXCEL的功能,又能利用本作品提高效率。 结构紧凑,界面简洁 本作品工作表个数极少,分别是总表、表册、设置。你可以先在总表输入、...

    Win10提示-QQ远程系统权限原因,暂时无法操作-的解决方法.doc

    在使用Windows 10操作系统时,有时会遇到QQ远程控制功能因系统权限问题而无法正常工作的情况。当出现“QQ远程系统权限原因,暂时无法操作”的提示时,可以通过以下步骤来解决问题: 首先,我们需要在被控端的电脑上...

    Excel读取Jmail成绩单群发

    这个程序的主要目标是提高教育机构或教师向学生分发成绩单的效率,通过自动化的方式减少手动操作的繁琐过程。 首先,我们要理解Excel在其中的角色。Excel是一种广泛使用的电子表格软件,它允许用户组织和处理数据,...

    Excel 2007 Application对象开发指南

    这类似于手动在Excel界面上的操作流程:从Excel程序开始,打开一个工作簿,选择一个工作表,然后定位到特定的单元格。 #### 不使用“Application”限定词的情况 在许多情况下,为了方便,可以不使用“Application...

    linux下数据库导入导入导出EXCEL文件

    创建一个新的数据库和表,以便稍后导入数据。 ```bash sqlite3 test.db CREATE TABLE IF NOT EXISTS data ( id INTEGER PRIMARY KEY AUTOINCREMENT, column1 TEXT, column2 TEXT, column3 TEXT ); ``` **3. ...

    java将含有数据的excel文件上传到mysql数据库

    4. **读取数据**:遍历工作表的每一行(`Row`对象)和每个单元格(`Cell`对象),将数据存储到适当的数据结构,如ArrayList或HashMap,以便稍后插入数据库。 ```java for (Row row : sheet) { if (!row....

Global site tag (gtag.js) - Google Analytics