GetFile-----从FTP服务器上下载文件 BOOL GetFile( LPCTSTR pstrRemoteFile, LPCTSTR pstrLocalFile, BOOL bFailIfExists = TRUE, DWORD dwAttributes = FILE_ATTRIBUTE_NORMAL, DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY, DWORD dwContext = 1 )pstrRemoteFile //标识在FTP服务器上下载的文件名称pstrLocalFile//标识下载到本地时的文件名称bFailIfExists //标识如果本地的文件名已存在,是否进行下载如果为True 并且本地文件存在GetFile执行失败dwAttributes //标识文件属性 dwFlags //标识传输的方式,莫仍采用二进制传输dwContext //表示传递文件时的内容标识符import java.io.*import jxl.*… … … … try { //构建Workbook对象, 只读Workbook对象 //直接从本地文件创建Workbook //从输入流创建Workbook InputStream is = new FileInputStream(sourcefile)jxl.Workbook rwb = Workbook.getWorkbook(is)} catch (Exception e) { e.printStackTrace()} 一旦创建了Workbook,我们就可以通过它来访问Excel Sheet(术语:工作表)。参考下面的代码片段: //获取第一张Sheet表 Sheet rs = rwb.getSheet(0)我们既可能通过Sheet的名称来访问它,也可以通过下标来访问它。如果通过下标来访问的话,要注意的一点是下标从0开始,就像数组一样。 一旦得到了Sheet,我们就可以通过它来访问Excel Cell(术语:单元格)。参考下面的代码片段: //获取第一行,第一列的值 Cell c00 = rs.getCell(0, 0)String strc00 = c00.getContents()//获取第一行,第二列的值 Cell c10 = rs.getCell(1, 0)String strc10 = c10.getContents()//获取第二行,第二列的值 Cell c11 = rs.getCell(1, 1)String strc11 = c11.getContents()System.out.println("Cell(0, 0)" + " value : " + strc00 + "type : " + c00.getType())System.out.println("Cell(1, 0)" + " value : " + strc10 + "type : " + c10.getType())System.out.println("Cell(1, 1)" + " value : " + strc11 + "type : " + c11.getType())如果仅仅是取得Cell的值,我们可以方便地通过getContents()方法,它可以将任何类型的Cell值都作为一个字符串返回。示例代码中Cell(0, 0)是文本型,Cell(1, 0)是数字型,Cell(1,1)是日期型,通过getContents(),三种类型的返回值都是字符型。 如果有需要知道Cell内容的确切类型,API也提供了一系列的方法。参考下面的代码片段: String strc00 = nulldouble strc10 = 0.00Date strc11 = nullCell c00 = rs.getCell(0, 0)Cell c10 = rs.getCell(1, 0)Cell c11 = rs.getCell(1, 1)if(c00.getType() == CellType.LABEL) { LabelCell labelc00 = (LabelCell)c00strc00 = labelc00.getString()} if(c10.getType() == CellType.NUMBER) { NmberCell numc10 = (NumberCell)c10strc10 = numc10.getValue()} if(c11.getType() == CellType.DATE) { DateCell datec11 = (DateCell)c11strc11 = datec11.getDate()} System.out.println("Cell(0, 0)" + " value : " + strc00 + "type : " + c00.getType())System.out.println("Cell(1, 0)" + " value : " + strc10 + "type : " + c10.getType())System.out.println("Cell(1, 1)" + " value : " + strc11 + "type : " + c11.getType())在得到Cell对象后,通过getType()方法可以获得该单元格的类型,然后与API提供的基本类型相匹配,强制转换成相应的类型,最后调用相应的取值方法getXXX(),就可以得到确定类型的值。API提供了以下基本类型,与Excel的数据格式相对应,如下图所示: 每种类型的具体意义,请参见Java Excel API Document。 当你完成对Excel电子表格数据的处理后,一定要使用close()方法来关闭先前创建的对象,以释放读取数据表的过程中所占用的内存空间,在读取大量数据时显得尤为重要。参考如下代码片段: //操作完成时,关闭对象,释放占用的内存空间 rwb.close()Java Excel API提供了许多访问Excel数据表的方法,在这里我只简要地介绍几个常用的方法,其它的方法请参考附录中的Java Excel API Document。 • Workbook类提供的方法 1. int getNumberOfSheets() 获得工作薄(Workbook)中工作表(Sheet)的个数,示例: jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile))int sheets = rwb.getNumberOfSheets()2. Sheet[] getSheets() 返回工作薄(Workbook)中工作表(Sheet)对象数组,示例: jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile))Sheet[] sheets = rwb.getSheets()3. String getVersion() 返回正在使用的API的版本号,好像是没什么太大的作用。 jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile))String apiVersion = rwb.getVersion()• Sheet接口提供的方法 1. String getName() 获取Sheet的名称,示例: jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile))jxl.Sheet rs = rwb.getSheet(0)String sheetName = rs.getName()2. int getColumns() 获取Sheet表中所包含的总列数,示例: jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile))jxl.Sheet rs = rwb.getSheet(0)int rsColumns = rs.getColumns()3. Cell[] getColumn(int column) 获取某一列的所有单元格,返回的是单元格对象数组,示例: jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile))jxl.Sheet rs = rwb.getSheet(0)Cell[] cell = rs.getColumn(0)4. int getRows() 获取Sheet表中所包含的总行数,示例: jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile))jxl.Sheet rs = rwb.getSheet(0)int rsRows = rs.getRows()5. Cell[] getRow(int row) 获取某一行的所有单元格,返回的是单元格对象数组,示例子: jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile))jxl.Sheet rs = rwb.getSheet(0)Cell[] cell = rs.getRow(0)6. Cell getCell(int column, int row) 获取指定单元格的对象引用,需要注意的是它的两个参数,第一个是列数,第二个是行数,这与通常的行、列组合有些不同。 jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile))jxl.Sheet rs = rwb.getSheet(0)Cell cell = rs.getCell(0, 0)生成新的Excel工作薄 下面的代码主要是向大家介绍如何生成简单的Excel工作表,在这里单元格的内容是不带任何修饰的(如:字体,颜色等等),所有的内容都作为字符串写入。(完整代码见ExcelWriting.java) 与读取Excel工作表相似,首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象,这里要注意的是,只能通过API提供的工厂方法来创建Workbook,而不能使用WritableWorkbook的构造函数,因为类WritableWorkbook的构造函数为protected类型。示例代码片段如下: import java.io.*import jxl.*import jxl.write.*… … … … try { //构建Workbook对象, 只读Workbook对象 //Method 1:创建可写入的Excel工作薄 jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(targetfile))//Method 2:将WritableWorkbook直接写入到输出流 /* OutputStream os = new FileOutputStream(targetfile)jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(os)*/ } catch (Exception e) { e.printStackTrace()} API提供了两种方式来处理可写入的输出流,一种是直接生成本地文件,如果文件名不带全路径的话,缺省的文件会定位在当前目录,如果文件名带有全路径的话,则生成的Excel文件则会定位在相应的目录;另外一种是将Excel对象直接写入到输出流,例如:用户通过浏览器来访问Web服务器,如果HTTP头设置正确的话,浏览器自动调用客户端的Excel应用程序,来显示动态生成的Excel电子表格。 接下来就是要创建工作表,创建工作表的方法与创建工作薄的方法几乎一样,同样是通过工厂模式方法获得相应的对象,该方法需要两个参数,一个是工作表的名称,另一个是工作表在工作薄中的位置,参考下面的代码片段: //创建Excel工作表 jxl.write.WritableSheet ws = wwb.createSheet("Test Sheet 1", 0)"这锅也支好了,材料也准备齐全了,可以开始下锅了!",现在要做的只是实例化API所提供的Excel基本数据类型,并将它们添加到工作表中就可以了,参考下面的代码片段: //1.添加Label对象 jxl.write.Label labelC = new jxl.write.Label(0, 0, "This is a Label cell")ws.addCell(labelC)//添加带有字型Formatting的对象 jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true)jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf)jxl.write.Label labelCF = new jxl.write.Label(1, 0, "This is a Label Cell", wcfF)ws.addCell(labelCF)//添加带有字体颜色Formatting的对象 jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED)jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc)jxl.write.Label labelCFC = new jxl.write.Label(1, 0, "This is a Label Cell", wcfFC)ws.addCell(labelCF)//2.添加Number对象 jxl.write.Number labelN = new jxl.write.Number(0, 1, 3.1415926)ws.addCell(labelN)//添加带有formatting的Number对象 jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##")jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf)jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN)ws.addCell(labelNF)//3.添加Boolean对象 jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false)ws.addCell(labelB)//4.添加DateTime对象 jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 3, new java.util.Date())ws.addCell(labelDT)//添加带有formatting的DateFormat对象 jxl.write.DateFormat df = new jxl.write.DateFormat("dd MM yyyy hh:mm:ss")jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df)jxl.write.DateTime labelDTF = new jxl.write.DateTime(1, 3, new java.util.Date(), wcfDF)ws.addCell(labelDTF)这里有两点大家要引起大家的注意。第一点,在构造单元格时,单元格在工作表中的位置就已经确定了。一旦创建后,单元格的位置是不能够变更的,尽管单元格的内容是可以改变的。第二点,单元格的定位是按照下面这样的规律(column, row),而且下标都是从0开始,例如,A1被存储在(0, 0),B1被存储在(1, 0)。 最后,不要忘记关闭打开的Excel工作薄对象,以释放占用的内存,参见下面的代码片段: //写入Exel工作表 wwb.write()//关闭Excel工作薄对象 wwb.close()这可能与读取Excel文件的操作有少少不同,在关闭Excel对象之前,你必须要先调用write()方法,因为先前的操作都是存储在缓存中的,所以要通过该方法将操作的内容保存在文件中。如果你先关闭了Excel对象,那么只能得到一张空的工作薄了。 拷贝、更新Excel工作薄 接下来简要介绍一下如何更新一个已经存在的工作薄,主要是下面二步操作,第一步是构造只读的Excel工作薄,第二步是利用已经创建的Excel工作薄创建新的可写入的Excel工作薄,参考下面的代码片段:(完整代码见ExcelModifying.java) //创建只读的Excel工作薄的对象 jxl.Workbook rw = jxl.Workbook.getWorkbook(new File(sourcefile))//创建可写入的Excel工作薄对象 jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(targetfile), rw)//读取第一张工作表 jxl.write.WritableSheet ws = wwb.getSheet(0)//获得第一个单元格对象 jxl.write.WritableCell wc = ws.getWritableCell(0, 0)//判断单元格的类型, 做出相应的转化 if(wc.getType() == CellType.LABEL) { Label l = (Label)wcl.setString("The value has been modified.")} //写入Excel对象 wwb.write()//关闭可写入的Excel对象 wwb.close()//关闭只读的Excel对象 rw.close()之所以使用这种方式构建Excel对象,完全是因为效率的原因,因为上面的示例才是API的主要应用。为了提高性能,在读取工作表时,与数据相关的一些输出信息,所有的格式信息,如:字体、颜色等等,是不被处理的,因为我们的目的是获得行数据的值,既使没有了修饰,也不会对行数据的值产生什么影响。唯一的不利之处就是,在内存中会同时保存两个同样的工作表,这样当工作表体积比较大时,会占用相当大的内存,但现在好像内存的大小并不是什么关键因素了。 一旦获得了可写入的工作表对象,我们就可以对单元格对象进行更新的操作了,在这里我们不必调用API提供的add()方法,因为单元格已经于工作表当中,所以我们只需要调用相应的setXXX()方法,就可以完成更新的操作了。 尽单元格原有的格式化修饰是不能去掉的,我们还是可以将新的单元格修饰加上去,以使单元格的内容以不同的形式表现。 新生成的工作表对象是可写入的,我们除了更新原有的单元格外,还可以添加新的单元格到工作表中,这与示例2的操作是完全一样的。 最后,不要忘记调用write()方法,将更新的内容写入到文件中,然后关闭工作薄对象,这里有两个工作薄对象要关闭,一个是只读的,另外一个是可写入的。 小结 本文只是对Java Excel API中常用的方法作了介绍,要想更详尽地了解API,请大家参考API文档,或源代码。Java Excel API是一个开放源码项目,请大家关注它的最新进展,有兴趣的朋友也可以申请加入这个项目,或者是提出宝贵的意见。
go语言怎么实现一次性上传多个文件,求代码
给您推荐相同类型的内容:
如何在windows下安装GIT
本文在Windows7下测试成功。安装和设置Git下载Git for Windows,采用默认安装,安装完成后就可以在本地使用Git了。但要将内容放到Github上,必须先在Github网站上注册个账户,然后在本机使用Git创建SSH KeGo语言的跨平台能力到底有多强?看完你就知道了
对比于其他语言的程序,Go语言的跨平台能力是真的强,拿.Net和JAVA来说吧,.Net在.Net core出现之前是不能跨平台的,只能在windows上编译运行,即使是.net core出现以后,跨平台的程序也是相当的麻烦。而java虽然怎么用电脑做视频,剪视频?
电脑做视频、剪辑视频可以通过格式工厂这个软件进行实现,具体的操作步骤如下:1、在百度搜索“格式工厂”,然后点击【百度一下】。2、在搜索出来的结果中找到格式工厂软件,然后点击【立即下载】。3、等待软件下载并安装完成以后,然后打开格式工厂软件Ruby 题:从一含有10个数组元素的数组中删除一个指定的数据,若该数据不存在,则给出提示。用while实现
public static void main(String[] args) {int [] num =new int[]{1,2,3,4,5,6,7,8,9,10}Scanner input = new Scanner(SysteJS中实现深拷贝的几种方法(object,Array)
4.通过第三方工具实现深拷贝 lodash.cloneDeep数组深拷贝 1. concat(arr1, arr2,....) 2. slice(idx1, idx2) 参数可以省略 1)没有参数是拷贝数组 2)只有go语言写后端快不快
比c++快,go用到了协程,而c++只能使用线程,协程切换几乎不占用或很少占用cpu资源,而线程切换却占用cpu资源较多,这就导致了在相同并发数的情况下,go语言开发的程序可以提高cpu的有效工作率,所以go语言做后端快发效率还是比较好的。电脑维修一般适用哪些机器进行检测
楼主的问题不是太清晰,是想问电脑维修有哪些检测设备与工具吗?要看是软件维修,还是硬件维修。软件维修:系统安装光盘、测试软件等。硬件维修:分板卡级维修与芯片级维修。板卡级维修,需要主板、CPU、内存、电源、显卡等备件,用于替换排查问题;芯片级怎么为adobe photoshop cc安装css3Ps扩展插件
打开css3ps的官网,点击download,选择你所需要的css3ps版本 。下载完成后,打开Adobe Extension Manager CC【一定要和你的photoshop版本对应,不然的话无法安装,小编就是只有Adobe Exte在java自定义标签中,后缀名为.tag的文件要怎么用,怎么写
jsp中添加<%@ taglib prefix="mt" uri="...mytag.tag" %>之后可以用 例如 <mt:form name="&golang怎么通过数据流直接生成excel上传至oss
import java.io.*import jxl.*… … … … try { 构建Workbook对象, 只读Workbook对象 直接从本地文件创建Workbook 从输入流创建Workbook InputStream每个开发人员都应该知道的16个顶级新计算机编程语言
函数式语言 Elixir Elixir 比 Erlang 更容易编写,具有 Haskell 等语言的函数式编程概念。Elixir是基于Erlang 虚拟机的,其广为人知的特点是运行低延时、分布式、可容错的系统,并成elementplus官网右上角的开关是怎么实现的
ElementPlus官网右上角的开关是基于HTML和CSS来实现的。首先,利用HTML中的<input type="checkbox">这个标签来创建一个开关,然后通过CSS中不同的类来设置打开css如何设置表格中的字体大小?
CSS设置字体的大小,我们首先想到的就应该是:font-size1.设置表格整体字体大小可以使用(具体字体大小,可以自己选择):table{font-size:12px}2.设置某个单元格的大小,把所需要设置大小的那个单元格设置一个类名,如go 的选项模式
现在有个结构体如下定义: 我们需要初始化结构体,如果是其他语言,函数支持默认参数: 但是,go语言函数不支持默认参数,同时即使go语言支持默认参数,但是如果配置项过多,那么每一个配置项都得写一个默认参数,也不现实。 那么,在goGo语言有什么好用的IDE吗
我喜欢jetbrains系列的IDE+go插件。不过我要说的是这个问题主要看你的观点如何。说eclipse:构建方式是使用go install 命令,每一次编译运行都是go install。这样的好处就是如果你有很多的包,下载下来并没有编译xp系统电脑怎么调节电脑屏幕亮度
1、首先打开电脑主界面,然后右击桌面空白位置处,选择点击“图形属性”选项,如下图所示。2、进入图形属性界面之后,选择点击”显示器“选项,如下图所示。3、进入显示器界面之后,选择点击”颜色“选项,如下图所示。4、最后在红色方框位置处即可调节屏下载了anyview4.0java软件,虽说可以看已前下的txt小说,但内存里以上的照片,歌曲就都打
我纠结了半天,很郁闷的发现的答案很简单我小说一般下在others文件夹里,而内存卡跟手机卡里的文件夹设定是一样的打开anyview4.0后菜单——打开找下memorycard(内存卡的意思)文件夹。(一般打开anyview4.0后都会默认手JS制作轮播图
轮播图是每个网站中必不可少的元素,那么如何用JS制作轮播图呢?下面我就给大家分享一下。工具材料Sublime Text 01首先需要在Sublime中创建HTML文档,然后在文档的body区域中加入如下图所示的轮播图内容用R语言ifelse做分组,可是组别的顺序乱了要怎么调整呢?
第一次件ifelse嵌套这么多的使用,你是跟自己有仇么,非要把问题搞的这么复杂。。。建议用if条件句,或者BASE中原始方法修改。ifelse个人觉得嵌套两个最优。再多必然晕。用order函数数字从大到小,所以是倒序列,开启order中的倒求助~怎么实现按钮点击一次之后,按钮不能再点击了,变为灰色,下面代码怎么更改
1、首先新建html页面,设置一个button按钮。2、然后拷贝一张图片,编辑CSS代码。引入JQ的类库,并引入之前编辑的CSS样式。3、编辑js代码,之后运行即可。4、代码目录结构如下。5、最终效果如下图所示,就完成了。需要准备的材料分如何运用ps切片,然后div+css布局的技巧!
ps切片之后可以直接生成页面和图片块,页面代码都是table表格形式的,然后我们对生成的页面进行修改,将table表格用div替换掉,包括里面的tr、td等,当然你的切片一定要切的好,替换起来就方便一些,如果说你切得不够流畅或者不规则,那么wps是什么意思
WPS是什么意思呢?有什么样的功能?跟着我一起来了解一下。【wps是什么意思】WPS (Word Processing System),中文意为文字我系统,是金山软件公司的一种文字我系统 集成软件,可以用WPS打开。最初出现于19ruby 可以写桌面软件吗?
Ruby 支持许多 GUI 工具,比如 TclTk、GTK 和 OpenGL。所以说是可以写的Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言Ruby的变量有一定的规则,以$开头的一定是全局变量,以@开头的都是实css字与字之间的间距怎么调
1.在文件夹中创建一个“test”的html文件。如图所示2.在里面添加html标签框架。如图所示3.在里面添加一个“div”并放入文字。如图所示4.然后我们发现默认文字之间比较紧凑。如图所示5.现在我们给div设置一个id为“wd”。如图css中id选择器命名正确的是
正确命名规则如下:1、名称不能以数字开始,只能以字母、连字符、下划线开始。2、之后可以是字母、连字符、下划线或数字。3、同时应该注意的是,CSS中的命名是区分大小写。一、Css书写顺序:1.位置属性(position, top, rightjs缓存问题怎么解决
面对的缓存问题有两个:一是页面引入的JS文件缓存。二是JS请求后台的缓存。对于第一种情况,有两种处理方式:1、可以在页面引入的JS文件后面增加日趋,如果不经常改动的文件,可以在每次改动后修改后缀。2、对于第二种情况,一般的处理方式是在请求的最好最全的c人教程
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍如何用Python写星星符号
for i in range(1,10): if (i<=5): x=i else: x=10-i for j in range(1,x+1): print("*&quojs toString()什么意思
将其他格式,转换为字符串返回。var intValue=1var strValue=intValue.toString() 返回string型的"1"var bool = truevar strValue=bool台式电脑怎么加机械硬盘?
1,断开主机电源后,拆开主机侧壳。2,把机械硬盘放到机箱预留的硬盘位,然后用螺丝固定。3,连接数据线与硬盘供电线。4,开机进入系统后,按WIN键,右击计算机,点管理。5,然后点击计算机管理的左栏中的磁盘管理,稍等一会,即可看到所有连接电脑的