-
2021-02-25 18:36:25
workBook 处理类 Java 代码 /** * Excel WorkBook 工具类 * @author dsy * @version 1.0 */ public class ExcelWorkBook { public HSSFWorkbook workbook = ......
在Java 中读写 Excel 文件 Jakarta 的 POI 项目提供了一组操纵 Windows 文档的 Java API, 如下几个类提供了 操作 Excel 文件的方便的途径: HSSFWorkbook、HSSF......
Excel 与 POI 类对应关系 Excel POI 用途 整个 Excel ermodel.HSSFWorkbook 创建或装载整个 Excel 文件 Sheet er......
3、打开 Workbook Java 代码 1. 2. 3. 4. 5. 6. 7. 8. 9. //方法一:使用 WorkbookFactory FileInputStream Workbook wb in = = null; null; try ......
(如将测试结果写入测试用例) import java.io.File; import java.io.IOException; import jxl.CellType; import jxl.Workbook; import jxl.read.biff.BiffException......
//读取 Excel 数据表的第一步是创建 Workbook(术语:工作 薄),下面的代码片段举例说明了应该如何操作: //(完整代码见 ExcelReading.java) try { //构建 ......
(WORKBOOK) Java 代码 package Excel2003; import java.io.FileOutputStream; import java.io.IOException; import ermodel.HSSFWorkbook; ......
(CreateXLS.java
更多相关内容 -
workbook需要引入的包
2022-05-18 09:23:50JAVA导入(读取)Excel中的数据(支持xls与xlsx文件),主要包括JAVA导入(读取)Excel中的数据(支持xls与xlsx文件) -
WorkBook
2021-03-27 22:14:53WorkBook -
javascript-workbook
2021-02-11 17:32:57javascript-workbook -
workbook 需要的jar包
2018-11-19 22:06:13能实现execel导入导出的功能, workbook需要的jar包.很好用 -
使用Microsoft.Office.Interop.Excel.Workbook
2021-04-05 01:41:33发布后使用Microsoft.Office.Interop.Excel.Application时 -
python-workbook
2021-03-19 01:27:22python工作簿 -
RHEL8.0 RHCSA workbook RH134 (Original PDF)
2021-06-02 13:47:46RHEL8.0 RHCSA workbook RH134 (Original PDF) -
python-workbook:Python Workbook 2nd Edition的练习
2021-03-17 19:15:13python工作簿 Python Workbook 2nd Edition的练习 -
高中英语新人教版必三 Book3 Unit2 Workbook reading task For or against building a McDonald’s 课件
2021-01-20 12:34:08salad burger/hamburger chips cola\kola milk shakes奶昔 For or against building a McDonalds Fast readin -
java的workbook类的jar包(用于操作Excel)
2017-12-08 09:49:02java的workbook类的jar包,用于对excel等进行操作,可以直接用! -
Workbook相关jar包.zip
2019-08-14 11:50:18java操作excel表格的workbook 相关jar包,用于对excel进行相应的读取和操作 如获取工作簿,获取表单,读取单元格等 -
node_workbook:Node.js XLSX 读写器
2021-07-13 01:14:43节点工作簿 这将让您解析 .XLSX 文件以进行读取和写入文件。 这仍处于开发初期。 安装 在节点: npm install node_workbook -
django-workbook:使用Django学习Web开发
2021-03-17 21:03:47django-workbook 使用Django学习Web开发 -
Workbook workbook = new Workbook();代码运行报错
2021-04-10 18:27:45<p>Workbook workbook = new Workbook(); 用的import com.spire.xls.*;jar包 代码不报错,但是执行到这代码会后台报错 警告: #{var_SyglControlBean.btn_6_onclick_action}: java.lang.... -
Workbook 对象 应用示例
2020-12-19 07:02:27Workbook对象代表一个工作簿,Workbooks集合对象则代表同一Excel进程中打开的所有工作簿对象。[应用1] 创建新工作簿(Add方法)使用Add方法在Workbooks集合中创建新工作簿,所创建的工作簿为活动工作簿。其语法为:...Workbook对象代表一个工作簿,Workbooks集合对象则代表同一Excel进程中打开的所有工作簿对象。
[应用1] 创建新工作簿(Add方法)
使用Add方法在Workbooks集合中创建新工作簿,所创建的工作簿为活动工作簿。其语法为:
Workbooks.Add(Template)
参数Template可选,决定如何创建新工作簿。如果将该参数设置为已存在的Excel模板文件名称,那么将以该文件作为模板创建工作簿。该参数可以为下列XlWBATemplate常量之一:xlWBATChart(值-4109,代表图表)、xlWBATExcel4IntlMacroSheet(值4)、xlWBATExcel4MacroSheet(值3)、xlWBATWorksheet(值-4167,代表工作表)。在创建新工作簿时,如果指定该参数,那么将创建包含指定类型工作表的工作簿;如果省略该参数,那么将创建包含一定数量空工作表的工作簿,工作表数为SheetsInNewWorkbook属性所设置的数量。
应用示例1:创建一个新工作簿
Sub CreateNewWorkbook1()
MsgBox "将创建一个新工作簿."
Workbooks.Add
End Sub
应用示例2:创建一个新工作簿并命名工作表且添加数据
Sub CreateNewWorkbook2()
Dim wb As Workbook
Dim ws As Worksheet
Dim i As Long
MsgBox "将创建一个新工作簿,并预设工作表格式."
Set wb = Workbooks.Add
Set ws = wb.Sheets(1)
ws.Name = "产品汇总表"
ws.Cells(1, 1) = "序号"
ws.Cells(1, 2) = "产品名称"
ws.Cells(1, 3) = "产品数量"
For i = 2 To 10
ws.Cells(i, 1) = i - 1
Next i
End Sub
应用示例3:创建带有指定数量工作表的工作簿
Sub testNewWorkbook()
MsgBox "创建一个带有10个工作表的新工作簿"
Dim wb As Workbook
Set wb = NewWorkbook(10)
End Sub
Function NewWorkbook(wsCount As Integer) As Workbook
'创建带有由变量wsCount提定数量工作表的工作簿,工作表数在1至255之间 Dim OriginalWorksheetCount As Long
Set NewWorkbook = Nothing
If wsCount < 1 Or wsCount > 255 Then Exit Function
OriginalWorksheetCount = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = wsCount
Set NewWorkbook = Workbooks.Add
Application.SheetsInNewWorkbook = OriginalWorksheetCount
End Function
自定义函数NewWorkbook可以创建最多带有255个工作表的工作簿。本测试示例创建一个带有10个工作表的新工作簿。
[应用2] 打开工作簿(Open方法)
Open方法用于打开一个现有的工作簿,其语法为:
Workbooks.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)
可以看到,该方法具有很多参数,但大多数参数都很少用到。在这些参数中,除参数FileName必须外,其它参数都可选。
参数FileName指定要打开的工作簿文件的名称,参数UpdateLinks指定更新工作簿中链接的方式,参数ReadOnly用来设置是否以只读方式打开工作簿。如果需要使用密码来打开工作簿,则应该将参数Password设置为该密码;如果需要使用密码打开工作簿但没有指定密码,则会弹出询问密码的对话框。参数AddToMru指定是否将工作簿添加到最近使用的文件列表中,建议将其设置为True,默认值为False。
应用示例4:以只读方式打开某工作簿
Sub openWorkbook2()
Dim fname As String
MsgBox "将D盘中的工作簿以只读方式打开"
fname = "D:/测试.xls"
Workbooks.Open Filename:=fname, ReadOnly:=True
End Sub
[应用3] 访问特定的工作簿
使用Item属性返回Workbooks集合中特定的工作簿。例如:
Workbooks.Item(1)
返回Workbooks集合中的第一个工作簿。由于Item属性是缺省的属性,因此上述代码也可以简写为:
Workbooks(1)
然而,使用索引号来指定工作簿是不可靠的,最好使用工作簿的具体名称来指定特定的工作簿,例如:
Workbooks("MyBook.xlsx")
注意,当用户使用“新建”命令创建一个新工作簿(假设该工作簿系统默认名称为Book2)时,在没有保存该工作簿前,应该使用下面的代码指定该工作簿:
Workbooks("Book2")
此时,如果使用下面的代码指定该工作簿:
Workbooks("Book2.xlsx")
将会产生运行时错误:下标越界。
[应用4] 激活工作簿(Activate方法)使用Activate方法激活指定的工作簿,例如:
Workbooks("MyWorkbook").Activate
[应用5] 获得当前打开的工作簿数(Count属性)使用Workbooks集合对象的Count属性来获得当前打开的工作簿数,例如:
Workbooks.Count
[应用6] 判断工作簿是否是只读的(ReadOnly属性)
如果工作簿以只读方式打开,那么ReadOnly属性的值为True。
[应用7] 获得工作簿的路径和名称(Name属性、FullName属性、Path属性、CodeName属性)
使用Workbook对象的Name属性可以返回工作簿的名称。例如,下面的函数可以返回当前工作簿的名称:
Function MyName() As String
MyName = ThisWorkbook.Name
End Function
使用Workbook对象的FullName属性可以返回工作簿的路径和名称。例如,下面的函数可以返回当前工作簿的路径和名称:
Function MyName() As String
MyName = ThisWorkbook.Name
End Function
使用Workbook对象的Path属性可以返回工作簿文件的路径。使用Workbook对象的CodeName属性返回工作簿对象的代码名。
上述属性均为只读属性。
应用示例5:一些工作簿通用属性示例
Sub testGeneralWorkbookInfo()
MsgBox "本工作簿的名称为" & ActiveWorkbook.Name
MsgBox "本工作簿带完整路径的名称为" & ActiveWorkbook.FullName
MsgBox "本工作簿对象的代码名为" & ActiveWorkbook.CodeName
MsgBox "本工作簿的路径为" & ActiveWorkbook.Path
If ActiveWorkbook.ReadOnly Then
MsgBox "本工作簿已经是以只读方式打开"
Else
MsgBox "本工作簿可读写."
End If
If ActiveWorkbook.Saved Then
MsgBox "本工作簿已保存."
Else
MsgBox "本工作簿需要保存."
End If
End Sub
[应用8] 保存工作簿(Save方法)
使用Save方法保存对工作簿所作的所有更改,其语法为:
Workbook.Save
应用示例6:保存已存在的所有工作簿
Sub SaveAllWorkbooks()
Dim wbk As Workbook
For Each wbk In Workbooks
If wbk.Path <> "" Then wbk.Save
Next wbk
End Sub
如果某工作簿的Path属性值为空,则表明该工作簿为新建工作簿,还没有保存。而本过程仅保存所有已存在的(即已经保存过的)工作簿。
[应用9] 保存工作簿(SaveAs方法)
使用SaveAs方法在指定的文件中保存对工作簿所做的更改,其语法为:
Workbook.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)
所有参数均为可选参数。其中参数FileName指定要保存文件的文件名,可以包含完整的路径,如果不指定路径,Excel将文件保存到当前文件夹中。参数FileFormat指定保存文件时使用的文件格式。如果文件夹中存在相同名称的工作簿,则提示是否替换原工作簿。
参数Password用于指定文件的保护密码,是一个区分大小写的字符串(最长不超过 15 个字符)。参数WriteResPassword指定文件的写保护密码,如果文件保存时带有密码,但打开文件时没有输入密码,则该文件以只读方式打开。
将参数ReadOnlyRecommended设置为True,则在打开文件时显示一条消息,提示该文件以只读方式打开。将参数CreateBackup设置为True,以创建一个备份文件。
参数AccessMode和参数ConflictResolution用来解决访问和冲突问题。
将参数AddToMru设置为True,以添加工作簿到最近使用的文件列表中。默认值为False。
应用示例7:创建新工作簿并保存
Sub AddSaveAsNewWorkbook()
Dim Wk As Workbook
Set Wk = Workbooks.Add
Application.DisplayAlerts = False
Wk.SaveAs Filename:="D:/SalesData.xlsx"
End Sub
这里使用了Add方法和SaveAs方法,添加一个新工作簿并将该工作簿以文件名SalesData.xlsx保存在D盘中。其中,语句Application.DisplayAlerts = False表示禁止弹出警告对话框。
应用示例8:另存已有的工作簿
Sub SaveWorkbook2()
Dim oldName As String, newName As String
Dim folderName As String, fname As String
oldName = ActiveWorkbook.Name
newName = "new" & oldName
MsgBox "将以的名称保存"
folderName = Application.DefaultFilePath
fname = folderName & "/" & newName
ActiveWorkbook.SaveAs fname
End Sub
上述代码将当前工作簿以一个新名(即new加原名)保存在默认文件夹中。
应用示例9:备份工作簿
Sub CreateBak1()
MsgBox "保存工作簿并建立备份工作簿"
ActiveWorkbook.SaveAs CreateBackup:=True
End Sub
上述代码在当前文件夹中建立工作簿的备份。
Sub CreateBak2()
MsgBox "保存工作簿时,若已建立了备份,则将出现包含True的信息框,否则出现False."
MsgBox ActiveWorkbook.CreateBackup
End Sub
[应用10] 保存工作簿副本(SaveCopyAs方法)
使用SaveCopyAs方法保存指定工作簿的一份副本,但不会修改已经打开的工作簿,其语法为:
Workbook.SaveCopyAs(Filename)
参数Filename用来指定副本的文件名。
应用示例10:使用与活动工作簿相同的名称但后缀名为.bak来备份工作簿
Sub SaveWorkbookBackup()
Dim awb As Workbook, BackupFileName As String, i As Integer, OK As Boolean
If TypeName(ActiveWorkbook) = "Nothing" Then Exit Sub
Set awb = ActiveWorkbook
If awb.Path = "" Then
Application.Dialogs(xlDialogSaveAs).Show
Else
BackupFileName = awb.FullName
i = 0
While InStr(i + 1, BackupFileName, ".") > 0
i = InStr(i + 1, BackupFileName, ".")
Wend
If i > 0 Then BackupFileName = Left(BackupFileName, i - 1)
BackupFileName = BackupFileName & ".bak"
OK = False
On Error GoTo NotAbleToSave
With awb
Application.StatusBar = "正在保存工作簿..."
.Save
Application.StatusBar = "正在备份工作簿..."
.SaveCopyAs BackupFileName
OK = True
End With
End If
NotAbleToSave:
Set awb = Nothing
Application.StatusBar = False
If Not OK Then
MsgBox "备份工作簿未保存!", vbExclamation, ThisWorkbook.Name
End If
End Sub
在当前工作簿中运行本示例代码后,将以与工作簿相同的名称但后缀名为.bak备份工作簿,且该备份与当前工作簿在同一文件夹中。
应用示例11:保存当前工作簿的副本到其它位置来备份工作簿
Sub SaveWorkbookBackupToFloppyD()
Dim awb As Workbook, BackupFileName As String, i As Integer, OK As Boolean
If TypeName(ActiveWorkbook) = "Nothing" Then Exit Sub
Set awb = ActiveWorkbook
If awb.Path = "" Then
Application.Dialogs(xlDialogSaveAs).Show
Else
BackupFileName = awb.Name
OK = False
On Error GoTo NotAbleToSave
If Dir("D:/" & BackupFileName) <> "" Then
Kill "D:/" & BackupFileName
End If
With awb
Application.StatusBar = "正在保存工作簿..."
.Save
Application.StatusBar = "正在备份工作簿..."
.SaveCopyAs "D:/" & BackupFileName
OK = True
End With
End If
NotAbleToSave:
Set awb = Nothing
Application.StatusBar = False
If Not OK Then
MsgBox "备份工作簿未保存!", vbExclamation, ThisWorkbook.Name
End If
End Sub
上述程序将当前工作簿进行复制并以与当前工作簿相同的名称保存在D盘中。其中,使用了Kill方法来删除已存在的工作簿。
[应用11] 判断工作簿是否发生变化(Saved属性)
如果工作簿自上次保存以来没有发生任何变化,那么该工作簿的Saved属性值为True。由于该属性值是可读写的,因此我们能将该属性的值设置为True,即使该工作簿自上次保存之后发生过变化。这样,我们能设置该属性的值为True,关闭被修改过的工作簿而不提示保存当前已发生的变化,即让Excel误认为已经保存了所作的变化。
[应用12] 关闭工作簿(Close方法)
使用Workbooks对象的Close方法关闭所有工作簿,其语法为:
Workbooks.Close
使用Workbook对象的Close方法关闭指定的工作簿,其语法为:
Workbook.Close(SaveChanges, Filename, RouteWorkbook)
参数均为可选参数。其中,参数SaveChanges用于在关闭工作簿前保存工作簿所发生的变化。特别地,如果工作簿中没有变化,则忽略该参数;如果工作簿中有变化但工作簿显示在其他打开的窗口中,则忽略该参数;如果工作簿中有改动且工作簿未显示在任何其他打开的窗口中,则由该参数指定是否应保存更改。如果将该参数设置为True,则保存对工作簿所做的更改;如果工作簿尚未命名,则使用参数FileName指定的名称保存。如果忽略参数Filename,则要求用户提供文件名。如果将该参数设置为False,则不会保存工作簿中的变化。如果忽略该参数,那么Excel将显示一个对话框询问是否保存工作簿中的变化。
参数RouteWorkbook指出工作簿传送的问题。如果工作簿不需要传送给下一个收件人(没有传送名单或已经传送),则忽略该参数。否则,Excel将根据该参数的值传送工作簿。如果将该参数设置为True,则将工作簿传送给下一个收件人。如果设置为False,则不发送工作簿。如果忽略,则要求用户确认是否发送工作簿。
注意,Close方法检查工作簿的Saved属性,以决定是否提示用户保存工作簿所发生的变化。如果将Saved属性的值设置为True,那么Close方法将不会警告而直接关闭工作簿,并不会保存工作簿中所发生的任何变化。
应用示例12:保存并关闭所有工作簿
Sub SaveAndCloseAllWorkbooks()
Dim wbk As Workbook
For Each wbk In Workbooks
If wbk.Name <> ThisWorkbook.Name Then
wbk.Close SaveChanges:=True
End If
Next wbk
ThisWorkbook.Close SaveChanges:=True
End Sub
应用示例13:不保存而关闭工作簿
Sub CloseWorkbook1()
MsgBox "不保存所作的改变而关闭本工作簿"
ActiveWorkbook.Close False
'或ActiveWorkbook.Close SaveChanges:=False '或ActiveWorkbook.Saved=TrueEnd Sub
应用示例14:保存而关闭工作簿
Sub CloseWorkbook2()
MsgBox "保存所作的改变并关闭本工作簿"
ActiveWorkbook.Close True
End Sub
应用示例15:关闭工作簿并将其彻底删除
Sub KillMe()
With ThisWorkbook
.Saved = True
.ChangeFileAccess Mode:=xlReadOnly
Kill .FullName
.Close False
End With
End Sub
[应用13] 打印预览工作簿(PrintPreview方法)
使用PrintPreview方法按工作簿打印后的外观效果显示工作簿的预览,其语法为:
Workbook.PrintPreview(EnableChanges)
参数EnableChanges指定用户是否可更改边距和打印预览中可用的其他页面设置选项。
[应用14] 打印工作簿(PrintOut方法)
使用PrintOut方法打印完整的工作簿(当然,该方法也应用于其它一些对象,例如Range、Worksheet、Chart),其语法为:
Workbook.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName, IgnorePrintAreas)
所有参数均为可选参数。参数From指定需要打印第一页的页码,参数To指定要打印的最后一页的页码,如果忽略这些参数,将打印整个对象。
参数Copies指定要打印副本的数量,默认值为1。
如果参数Preview设置为True,那么将弹出打印预览而不是立即打印。默认值为False。
使用参数ActivePrinter设置活动打印机的名称。
如果将参数PrintToFile设置为True,那么将工作簿打印到文件。此时,如果没有指定参数PrToFileName的值,那么Excel将提示用户输入要使用的输出文件的文件名。使用参数PrToFileName指定要打印到的文件名。
将参数Collate设置为True,以逐份打印副本。
将参数IgnorePrintAreas设置为真,则忽略打印区域而打印整个对象。
[应用15] 保护工作簿(Protect方法)
使用Protect方法保护工作簿,使其不能够被修改,其语法为:
Workbook.Protect(Password, Structure, Windows)
所有参数均为可选参数。其中,参数Password用来指定一个密码,所设置的密码区分大小写。如果省略该参数,不用密码就可以取消对工作簿的保护。否则,必须指定密码才能取消对工作簿的保护。
将参数Structure的值设置为True,以保护工作簿的结构,即工作簿中工作表的相关位置。此时不能对工作簿中的工作表进行插入、复制、删除等操作。默认值为False。
将参数Windows的值设置为False,以保护工作簿窗口。此时,该工作簿右上角的最小化、最大化和关闭按钮消失。默认值为False。
应用示例16:保护工作簿示例代码
Sub ProtectWorkbook()
MsgBox "保护工作簿结构,密码为123"
ActiveWorkbook.Protect Password:="123", Structure:=True
MsgBox "保护工作簿窗口,密码为123"
ActiveWorkbook.Protect Password:="123", Windows:=True
MsgBox "保护工作簿结构和窗口,密码为123"
ActiveWorkbook.Protect Password:="123", Structure:=True, Windows:=True
End Sub
[应用16] 解除工作簿保护(Unprotect方法)
使用Unprotect方法取消工作簿保护,其语法为:
Workbook.Unprotect(Password)
参数Password为一个字符串,指定用于解除工作表或工作簿保护的密码,区分大小写。如果工作簿不设密码保护,则省略该参数。如果对工作簿省略该参数,而该工作簿又设有密码保护,则该方法将失效。
应用示例17:解除工作簿保护
Sub UnprotectWorkbook()
MsgBox "取消工作簿保护"
ActiveWorkbook.Unprotect "123"
End Sub
[应用17] 判断工作簿是否有密码保护(HasPassword属性)
如果指定工作簿有密码保护,则HasPassword属性值为 True。
应用示例18:检查工作簿是否有密码保护
Sub IsPassword()
If ActiveWorkbook.HasPassword = True Then
MsgBox "本工作簿有密码保护,请在管理员处获取密码."
Else
MsgBox "本工作簿无密码保护,您可以自由编辑."
End If
End Sub
[应用18] ThisWorkbook对象和ActiveWorkbook对象
有时,在代码中经常会碰到ThisWorkbook对象和ActiveWorkbook对象,虽然在某些情况下其所代表的工作簿相同,但是在某些情况下还是有较大的差别,特别是制作加载项时。
ThisWorkbook对象代表的是代码所在的工作簿,而ActiveWorkbook对象代表的是活动工作簿。
[应用19] 工作簿的属性(BuiltinDocumentProperties属性)
“文件—属性”或者“Office按钮—准备—属性”将显示一个对话框,包含了有关当前工作簿的信息,可以从VBA访问工作簿的属性。
应用示例19:显示已经保存的当前工作簿的日期和时间
Sub LastSaved()
Dim SaveTime As String
On Error Resume Next
SaveTime = ActiveWorkbook.BuiltinDocumentProperties("Last Save Time").Value
If SaveTime = "" Then
MsgBox ActiveWorkbook.Name & "还没有被保存."
Else
MsgBox "保存于:" & SaveTime, , ActiveWorkbook.Name
End If
End Sub
如果没有保存过工作簿,那么对Last Save Time属性的访问将产生错误,使用On Error语句忽略这个错误。
应用示例20:列出当前工作簿的内置属性
Sub listWorkbookProperties()
On Error Resume Next
'在名为"工作簿属性"的工作表中添加信息,若该工作表不存在,则新建一个工作表 Worksheets("工作簿属性").Activate
If Err.Number <> 0 Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "工作簿属性"
Else
ActiveSheet.Clear
End If
On Error GoTo 0
ListProperties
End Sub
Sub ListProperties()
Dim i As Long
Cells(1, 1) = "名称"
Cells(1, 2) = "类型"
Cells(1, 3) = "值"
Range("A1:C1").Font.Bold = True
With ActiveWorkbook
For i = 1 To .BuiltinDocumentProperties.Count
With .BuiltinDocumentProperties(i)
Cells(i + 1, 1) = .Name
Select Case .Type
Case msoPropertyTypeBoolean
Cells(i + 1, 2) = "Boolean"
Case msoPropertyTypeDate
Cells(i + 1, 2) = "Date"
Case msoPropertyTypeFloat
Cells(i + 1, 2) = "Float"
Case msoPropertyTypeNumber
Cells(i + 1, 2) = "Number"
Case msoPropertyTypeString
Cells(i + 1, 2) = "string"
End Select
On Error Resume Next
Cells(i + 1, 3) = .Value
On Error GoTo 0
End With
Next i
End With
Range("A:C").Columns.AutoFit
End Sub
[应用20] 重命名工作簿(Name方法)
Name方法用来重命名一个文件、目录或文件夹,其语法为:
Name oldpathname As newpathname
应用示例21:重命名未打开的工作簿
Sub rename()
Name "/.xlsx" As "/.xlsx"
End Sub
代码中<>的内容为需要重命名的工作簿所在路径及新旧名称。该方法只是对未打开的文件进行重命名,如果该文件已经打开,使用该方法会提示错误。
[应用21] 获取或设置工作簿密码(Password属性)
使用Password属性返回或设置在打开指定工作簿时必须提供的密码。
应用示例22:设置工作簿密码
Sub UsePassword()
Dim wb As Workbook
Set wb = Application.ActiveWorkbook
wb.Password = InputBox("请输入密码:")
wb.Close
End Sub
代码运行后,提示设置密码,然后关闭工作簿;再次打开工作簿时,要求输入密码。
[应用22] 工作簿中形状的显示方式(DisplayDrawingObjects属性)
使用DisplayDrawingObjects属性返回或设置工作簿中形状的显示方式,可以是下列常量之一:xlDisplayShapes(显示所有形状)、xlPlaceholders(仅显示占位符)、xlHide(隐藏所有形状)。
应用示例23:控制工作簿中图形显示方式
Sub testDraw()
MsgBox "隐藏当前工作簿中的所有图形"
ActiveWorkbook.DisplayDrawingObjects = xlHide
MsgBox "仅显示当前工作簿中所有图形的占位符"
ActiveWorkbook.DisplayDrawingObjects = xlPlaceholders
MsgBox "显示当前工作簿中的所有图形"
ActiveWorkbook.DisplayDrawingObjects = xlDisplayShapes
End Sub
[应用23] 工作簿文件格式(FileFormat属性)
使用FileFormat属性返回工作簿文件格式或类型。
[应用24] 决定工作簿计算使用的数值(PrecisionAsDisplayed属性)
在工作簿进行计算时,如果将PrecisionAsDisplayed属性设置为True,则仅使用工作表中所显示的数值进行计算,而不是单元格中实际存储的值。该属性的默认值为False,表明工作簿计算基于单元格中实际存储的值。
应用示例24:设置数字精度
Sub SetPrecision()
Dim pValue
MsgBox "在当前单元格中输入1/3,并将结果算至小数点后两位"
ActiveCell.Value = 1 / 3
ActiveCell.NumberFormatLocal = "0.00"
pValue = ActiveCell.Value * 3
MsgBox "当前单元格中的数字乘以3等于:" & pValue
MsgBox "然后,将数值分类设置为[数值],即单元格中显示的精度"
ActiveWorkbook.PrecisionAsDisplayed = True
pValue = ActiveCell.Value * 3
MsgBox "此时,当前单元格中的数字乘以3等于:" & pValue & "而不是1"
ActiveWorkbook.PrecisionAsDisplayed = False
End Sub
上述代码在计算前将PrecisionAsDisplayed属性的值设置为True,则表明采用单元格中所显示的数值进行计算。
[应用25] 删除自定义数字格式(DeleteNumberFormat方法)
使用DeleteNumberFormat方法从工作簿中删除一个自定义数字格式,其语法为:
Workbook.DeleteNumberFormat(NumberFormat)
参数NumberFormat为要删除的数字格式。
应用示例25:删除自定义数字格式
Sub DeleteNumberFormat()
MsgBox "从当前工作簿中删除000-00-0000的数字格式"
ActiveWorkbook.DeleteNumberFormat ("000-00-0000")
End Sub
[应用26] 添加名称(Names属性)
Workbook对象的Names属性返回Names集合,代表指定工作簿中的所有名称。
应用示例26:在活动工作簿中添加名称
Sub testNames()
MsgBox "将当前工作簿中工作表Sheet1内单元格A1命名为myName."
ActiveWorkbook.Names.Add Name:="myName", RefersToR1C1:="=Sheet1!R1C1"
End Sub
上述代码将活动工作簿单元格A1命名为MyName。
[应用27] 获取工作簿用户状态信息(UserStatus属性)
UserStatus属性返回一个基为 1 的二维数组,该数组提供有关每一个以共享列表模式打开工作簿的用户的信息。数组第二维的第一个元素为用户名,第二个元素是用户打开工作簿的日期和时间,第三个元素是一个表示清单类型的数字(1表示独占,2表示共享)。UserStatus属性不返回有关以只读方式打开指定工作簿的用户的信息。
应用示例27:列出工作簿用户状态信息
Sub UsePassword()
Dim Users As Variant
Dim Row As Long
Users = ActiveWorkbook.UserStatus
Row = 1
With Workbooks.Add.Sheets(1)
.Cells(Row, 1) = "用户名"
.Cells(Row, 2) = "日期和时间"
.Cells(Row, 3) = "使用方式"
For Row = 1 To UBound(Users, 1)
.Cells(Row + 1, 1) = Users(Row, 1)
.Cells(Row + 1, 2) = Users(Row, 2)
Select Case Users(Row, 3)
Case 1
.Cells(Row + 1, 3).Value = "个人工作簿"
Case 2
.Cells(Row + 1, 3).Value = "共享工作簿"
End Select
Next
End With
Range("A:C").Columns.AutoFit
End Sub
示例代码运行后,将创建一个新工作簿并带有用户使用当前工作簿的信息,即用户名、打开的日期和时间及工作簿使用方式。
[应用28] 操作工作簿中的样式(Styles集合和Style对象)
每个工作簿都有一个Styles集合,包含该工作簿的所有已定义样式。一个Style对象代表单元格区域的一组格式选项,可以使用Add方法创建Style对象,其语法为:
Styles.Add(Name, BasedOn)
参数Name必需,用来指定样式的名称。参数BasedOn可选,用来指定单元格,新样式即基于该单元格生成。如果省略此参数,就基于“常规”样式创建新样式。
如果指定名称的样式已经存在,该方法将基于参数BasedOn指定的单元格重新定义已存在的样式。
Style对象的属性代表了不同的格式特征,例如字体名称、字体大小、数字格式、对齐等。也有内置的样式,例如Normal、Currency和Percent,这些内置样式能在样式对话框中找到。
应用示例28:创建一个新样式并将其应用到当前工作表的单元格区域中
Sub test()
Dim st As Style
'如果该样式已存在则删除 For Each st In ActiveWorkbook.Styles
If st.Name = "Bordered" Then st.Delete
Next st
'创建新样式 With ActiveWorkbook.Styles.Add(Name:="Bordered")
.Borders(xlTop).LineStyle = xlDouble
.Borders(xlBottom).LineStyle = xlDouble
.Borders(xlLeft).LineStyle = xlDouble
.Borders(xlRight).LineStyle = xlDouble
.Font.Bold = True
.Font.Name = "Arial"
.Font.Size = 36
End With
'应用样式 Application.ActiveSheet.Range("A1:B3").Style = "Bordered"
End Sub
[应用29] 打开文本文件(OpenText方法)
OpenText方法用于在一个新工作簿中装入文本文件,并将其转换为工作表,其语法为:
Workbooks.OpenText(Filename, Origin, StartRow, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, TextVisualLayout, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers, Local)
与Open方法一样,除参数Filename必须外,其它参数都可选。
参数Filename指定要打开的文本文件的名称。参数Origin指定文本文件的来源,可以为下列XlPlatform常量之一:xlMacintosh、xlWindows或xlMSDOS,此外它还可以是一个整数,表示所需代码页的代码页编号,例如“1256”指定源文本文件的编码是阿拉伯语(Windows)。如果省略该参数,则此方法将使用“文本导入向导”中“文件原始格式”选项的当前设置。
参数StartRow指定从文本文件中开始进行分析处理的文本的行号,默值为1。参数DataType指定字段中的文本格式,可以是下列XlTextParsingType常量之一:xlDelimited或xlFixedWidth,如果忽略该参数,则Excel将尝试在打开文件时确定字段格式。参数TextQualifier用来指定文本识别符,可以是下列XlTextQualifier常量之一:xlTextQualifierNone(值-4142,代表无分隔符)、xlTextQualifierDoubleQuote(值1,代表双引号)、xlTextQualifierSingleQuote(值2,代表单引号)。应将参数ConsecutiveDelimiter设置为True,这样将连续分隔符当作一个分隔符,默认值为False。
有几个参数需要参数DataType必须设置为xlDelimited,包括参数Tab、参数Semicolon、参数Comma、参数Space和参数Other。当这些参数中的任何一个设置为True时,表示Excel应该使用与文本分隔符相应的字符,这些分隔符描述如下(所有参数的缺省值均为False):
参数Tab设置为True时,使用制表符作为分隔符;参数Semicolon设置为True时,使用分号作为分隔符;参数Comma设置为True时,使用逗号作为分隔符;参数Space设置为True时,使用空格作为分隔符;参数Other设置为True时,将使用参数OtherChar指定的字符作为分隔符。如果参数OtherChar包含多个字符时,则仅使用第一个字符而忽略其它字符。
参数FieldInfo是包含单列数据相关分列信息的数组,取决于参数DataType的值。当参数DataType的值为xlDelimited时,则参数FieldInfo为由两元素数组组成的数组,该数组的大小应该与被转换数据的列的数量相同或更小。一个二维数组的第一维是列标(起始为1),第二维是下列XlColumnDataType常量之一,用于指定列的数据类型:xlGeneralFormat(值1,常规)、xlTextFormat(值2,文本)、xlMDYFormat(值3,MDY日期格式)、xlDMYFormat(值4,DMY日期格式)、xlYMDFormat(值5,YMD日期格式)、xlMYDFormat(值6,MYD日期格式)、xlDYMFormat(值7,DYM日期格式)、xlYDMFormat(值8,YDM日期格式)、xlSkipColumn(值9,列未分列即跳过列)、xlEMDFormat(值10,EMD日期格式)。
如果提供给二维数组的列没有找到,那么该列将使用常规设置。例如,将下面的数据设置为参数FieldInfo的值,则第一列为文本,而第三列被跳过,其它列被视为常规数据:
Array(Array(1,2),Array(3,9))
参数TextVisualLayout代表文本的可视布局,参数DecimalSeparator指定小数分隔符,参数ThousandsSeparator指定千位分隔符,参数TrailingMinusNumbers用于处理末尾为减号的数字。参数Local用来指定是否分隔符、数字和数据格式应使用计算机的区域设置。
应用示例29:打开带有分隔符的文本文件
在D盘的excel文件夹中有一个名为temp1.txt的文本文件,其内容为:
"张三","工人","A工厂",1/2/2009
"李四","职员","B公司",3/3/2009
"王五","教师","C学校",2/2/2009
"赵六","学生","D学院",1/1/2009
在Excel工作簿中放置下面的代码:
Sub test()
Workbooks.OpenText Filename:="D:/excel/temp1.txt", _
Origin:=xlMSDOS, _
StartRow:=1, _
DataType:=xlDelimited, _
TextQualifier:=xlTextQualifierDoubleQuote, _
ConsecutiveDelimiter:=True, _
Comma:=True, _
FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 6))
End Sub
运行后,将生成如下图1所示的工作表。注意,列D中的单元格放置日期。
图1:在Excel中打开逗号分隔的文本文件
应用示例30:打开固定宽度的文本文件
如果参数DataType设置为xlFixedWidth,那么参数FieldInfo中每个二维数组的第一维指定字符在列中开始的位置(第一个字符的位置是0),第二维指定列的数据类型(如上面在参数介绍中所描述的)。
在D盘的excel文件夹中有一个名为temp2.txt的文本文件,其内容为:
0-125-689
2-523-489
3-424-664
4-125-160
在Excel工作簿中放置下面的代码:
Sub test()
Workbooks.OpenText Filename:="D:/excel/temp2.txt", _
Origin:=xlMSDOS, _
StartRow:=1, _
DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 2), Array(1, 9), Array(2, 2), Array(5, 9), Array(6, 2))
End Sub
运行后,将生成如下图2所示的工作表。注意看代码是如何使用数组跳过这些连字符的。
图2:在Excel中打开固定宽度的文本文件
注意到图1和图2中打开的文本文件并没有被转换为Excel 工作簿文件,因此使用下面的代码将其保存为Excel工作簿文件:
Application.ActiveWorkbook.SaveAs _
Filename:="D:/excel/temp.xlsx", FileFormat:=xlWorkbookNormal
[应用30] 判断工作簿是否存在
下面的示例使用自定义函数FileExists判断工作簿是否存在,若该工作簿已存在,则打开它。代码中,“C:/文件夹/子文件夹/文件.xls”代表工作簿所在的文件夹名、子文件夹名和工作簿文件名。
Sub testFileExists()
MsgBox "如果文件不存在则用信息框说明,否则打开该文件."
If Not FileExists("C:/文件夹/子文件夹/文件.xls") Then
MsgBox "这个工作簿不存在!"
Else
Workbooks.Open "C:/文件夹/子文件夹/文件.xls"
End If
End Sub
Function FileExists(FullFileName As String) As Boolean
'如果工作簿存在,则返回True FileExists = Len(Dir(FullFileName)) > 0
End Function
-
java的workbook类的jar包
2013-03-06 23:20:24java的workbook类的jar包,用于对excel等进行操作 -
Python xlwt.Workbook方法代碼示例
2020-12-13 11:54:39本文整理匯總了Python中xlwt.Workbook方法的典型用法代碼示例。如果您正苦於以下問題:Python xlwt.Workbook方法的具體用法?Python xlwt.Workbook怎麽用?Python xlwt.Workbook使用的例子?那麽恭喜您, 這裏精選的...本文整理匯總了Python中xlwt.Workbook方法的典型用法代碼示例。如果您正苦於以下問題:Python xlwt.Workbook方法的具體用法?Python xlwt.Workbook怎麽用?Python xlwt.Workbook使用的例子?那麽恭喜您, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在模塊xlwt的用法示例。
在下文中一共展示了xlwt.Workbook方法的26個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於我們的係統推薦出更棒的Python代碼示例。
示例1: __init__
點讚 10
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def __init__(self, path, engine=None, encoding=None, mode='w',
**engine_kwargs):
# Use the xlwt module as the Excel writer.
import xlwt
engine_kwargs['engine'] = engine
if mode == 'a':
raise ValueError('Append mode is not supported with xlwt!')
super(_XlwtWriter, self).__init__(path, mode=mode, **engine_kwargs)
if encoding is None:
encoding = 'ascii'
self.book = xlwt.Workbook(encoding=encoding)
self.fm_datetime = xlwt.easyxf(num_format_str=self.datetime_format)
self.fm_date = xlwt.easyxf(num_format_str=self.date_format)
開發者ID:Frank-qlu,項目名稱:recruit,代碼行數:18,
示例2: __init__
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def __init__(self):
# count用於計數excel行
self.excel = xlwt.Workbook(encoding='utf8')
self.sheet = self.excel.add_sheet('文獻列表', True)
self.set_style()
self.sheet.write(0, 0, '序號', self.basic_style)
self.sheet.write(0, 1, '題名', self.basic_style)
self.sheet.write(0, 2, '作者', self.basic_style)
self.sheet.write(0, 3, '單位', self.basic_style)
self.sheet.write(0, 4, '關鍵字', self.basic_style)
self.sheet.write(0, 5, '摘要', self.basic_style)
self.sheet.write(0, 6, '來源', self.basic_style)
self.sheet.write(0, 7, '發表時間', self.basic_style)
self.sheet.write(0, 8, '數據庫', self.basic_style)
if config.crawl_isDownLoadLink == '1':
self.sheet.write(0, 9, '下載地址', self.basic_style)
# 生成userKey,服務器不做驗證
self.cnkiUserKey = self.set_new_guid()
開發者ID:CyrusRenty,項目名稱:CNKI-download,代碼行數:21,
示例3: __init__
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def __init__(self, path, engine=None, **engine_kwargs):
# Use the openpyxl module as the Excel writer.
from openpyxl.workbook import Workbook
super(_OpenpyxlWriter, self).__init__(path, **engine_kwargs)
# Create workbook object with default optimized_write=True.
self.book = Workbook()
# Openpyxl 1.6.1 adds a dummy sheet. We remove it.
if self.book.worksheets:
try:
self.book.remove(self.book.worksheets[0])
except AttributeError:
# compat
self.book.remove_sheet(self.book.worksheets[0])
開發者ID:birforce,項目名稱:vnpy_crypto,代碼行數:19,
示例4: write_data
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def write_data(data, tname):
file = xlwt.Workbook(encoding='utf-8')
table = file.add_sheet(tname, cell_overwrite_ok=True)
l = 0
for line in data:
c = 0
for _ in line:
table.write(l, c, line[c])
c += 1
l += 1
sio = StringIO.StringIO()
file.save(sio)
return sio
# excel業務邏輯處理
開發者ID:ysrc,項目名稱:xunfeng,代碼行數:18,
示例5: from_data
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def from_data(self, fields, rows):
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Sheet 1')
for i, fieldname in enumerate(fields):
worksheet.write(0, i, fieldname)
worksheet.col(i).width = 8000 # around 220 pixels
style = xlwt.easyxf('align: wrap yes')
for row_index, row in enumerate(rows):
for cell_index, cell_value in enumerate(row):
if isinstance(cell_value, basestring):
cell_value = re.sub("\r", " ", cell_value)
if cell_value is False: cell_value = None
worksheet.write(row_index + 1, cell_index, cell_value, style)
fp = StringIO()
workbook.save(fp)
fp.seek(0)
data = fp.read()
fp.close()
return data
開發者ID:iw3hxn,項目名稱:LibrERP,代碼行數:25,
示例6: create_workbook
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def create_workbook(output_file):
''' Creates a proper instance of data file writer depending on file extension.
Supported formats are: xls, xslx and csv.
Args:
output_file (str): file name.
Returns:
(xlwt.Workbook, XlsxWorkbook or OneCsvWriter): created data file
writer instance.
Raises:
ValueError: if a file with not supported extension was provided.
'''
if output_file.endswith('.xls'):
work_book = xlwt.Workbook()
elif output_file.endswith('.xlsx'):
work_book = XlsxWorkbook()
elif output_file.endswith('.csv'):
work_book = OneCsvWriter(output_file)
else:
raise ValueError('File {0} has unsupported output format'.format
(output_file))
return work_book
開發者ID:araith,項目名稱:pyDEA,代碼行數:26,
示例7: test_super_efficiency_with_VRS
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def test_super_efficiency_with_VRS(DEA_example2_data):
data = DEA_example2_data
data.add_input_category('I1')
data.add_input_category('I2')
data.add_input_category('I3')
data.add_output_category('O1')
data.add_output_category('O2')
model = EnvelopmentModelBase(
data,
EnvelopmentModelInputOriented(generate_supper_efficiency_upper_bound),
DefaultConstraintCreator())
model = EnvelopmentModelVRSDecorator(model)
super_efficiency_model = SupperEfficiencyModel(model)
start_time = datetime.datetime.now()
solution = super_efficiency_model.run()
end_time = datetime.datetime.now()
work_book = xlwt.Workbook()
writer = XLSWriter(Parameters(), work_book, datetime.datetime.today(),
(end_time - start_time).total_seconds())
writer.write_data(solution)
work_book.save('tests/test_super_efficiency_with_VRS.xls')
開發者ID:araith,項目名稱:pyDEA,代碼行數:23,
示例8: test_peel_the_onion_CRS_multi_output_oriented
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def test_peel_the_onion_CRS_multi_output_oriented(DEA_example2_data):
model = _create_large_model_CRS_multi_output_oriented_with_non_discretionary(
DEA_example2_data)
start_time = datetime.datetime.now()
solution, ranks, state = peel_the_onion_method(model)
end_time = datetime.datetime.now()
_check_large_model_CRS_multi_output_oriented_with_non_discretionary(
solution, model.input_data)
dmus = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K']
expected_ranks = [1, 3, 2, 1, 3, 1, 1, 2, 1, 2, 1]
utils_for_tests.check_onion_ranks(
model.input_data, dmus, expected_ranks, ranks)
work_book = xlwt.Workbook()
ranks_as_list = []
ranks_as_list.append(ranks)
writer = XLSWriter(Parameters(), work_book, datetime.datetime.today(),
(end_time - start_time).total_seconds(),
ranks=ranks_as_list)
writer.write_data(solution)
work_book.save('tests/test_peel_the_onion.xls')
開發者ID:araith,項目名稱:pyDEA,代碼行數:23,
示例9: test_virtual_weight_restrictions_multiplier_model
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def test_virtual_weight_restrictions_multiplier_model(data):
model = MultiplierModelBase(data, 0,
MultiplierInputOrientedModel())
bounds = {'I1': (None, 0.5)}
model = MultiplierModelWithVirtualWeightRestrictions(model, bounds)
start_time = datetime.datetime.now()
model_solution = model.run()
end_time = datetime.datetime.now()
utils_for_tests.check_if_category_is_within_virtual_limits(
model_solution, bounds)
work_book = xlwt.Workbook()
writer = XLSWriter(Parameters(), work_book, datetime.datetime.today(),
(end_time - start_time).total_seconds())
writer.write_data(model_solution)
work_book.save('tests/test_virtual_weights_multi_output.xls')
開發者ID:araith,項目名稱:pyDEA,代碼行數:20,
示例10: test_price_ratio_multiplier_model
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def test_price_ratio_multiplier_model(data):
model = MultiplierModelBase(data, 0,
MultiplierInputOrientedModel())
bounds = {('I1', 'I2'): (None, 0.4), ('O1', 'O2'): (0.01, None)}
model = MultiplierModelWithPriceRatioConstraints(model, bounds)
start_time = datetime.datetime.now()
model_solution = model.run()
end_time = datetime.datetime.now()
utils_for_tests.check_if_category_is_within_price_ratio_constraints(
model_solution, bounds)
work_book = xlwt.Workbook()
writer = XLSWriter(Parameters(), work_book, datetime.datetime.today(),
(end_time - start_time).total_seconds())
writer.write_data(model_solution)
work_book.save('tests/test_price_ratio_multi_output.xls')
開發者ID:araith,項目名稱:pyDEA,代碼行數:20,
示例11: test_abs_restrictions_env_model
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def test_abs_restrictions_env_model(data):
model = EnvelopmentModelBase(data,
EnvelopmentModelInputOriented(
generate_upper_bound_for_efficiency_score),
DefaultConstraintCreator())
bounds = {'I2': (0.01, 0.5)}
model = EnvelopmentModelWithAbsoluteWeightRestrictions(model, bounds)
start_time = datetime.datetime.now()
model_solution = model.run()
end_time = datetime.datetime.now()
utils_for_tests.check_if_category_is_within_abs_limits(
model_solution, bounds)
work_book = xlwt.Workbook()
writer = XLSWriter(Parameters(), work_book, datetime.datetime.today(),
(end_time - start_time).total_seconds())
writer.write_data(model_solution)
work_book.save('tests/test_abs_constraints_env_output.xls')
開發者ID:araith,項目名稱:pyDEA,代碼行數:21,
示例12: test_abs_restrictions_env_model_output
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def test_abs_restrictions_env_model_output(data):
filename = 'tests/DEA_Harish_parameters.txt'
params = parse_parameters_from_file(filename)
categories, data, dmu_name, sheet_name = read_data(
params.get_parameter_value('DATA_FILE'))
coefficients, has_same_dmus = convert_to_dictionary(data)
model_input = construct_input_data_instance(categories, coefficients)
models, all_params = build_models(params, model_input)
assert len(models) == 1 and len(all_params) == 1
model = models[0]
start_time = datetime.datetime.now()
model_solution = model.run()
end_time = datetime.datetime.now()
bounds = {'Urban Roads (%)': (None, 0.003)}
utils_for_tests.check_if_category_is_within_abs_limits(
model_solution, bounds)
work_book = xlwt.Workbook()
writer = XLSWriter(Parameters(), work_book, datetime.datetime.today(),
(end_time - start_time).total_seconds())
writer.write_data(model_solution)
work_book.save('tests/test_abs_constraints_env_outoriented_output.xls')
開發者ID:araith,項目名稱:pyDEA,代碼行數:25,
示例13: test_virual_restrictions_env_model
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def test_virual_restrictions_env_model(data):
model = EnvelopmentModelBase(data,
EnvelopmentModelInputOriented(
generate_upper_bound_for_efficiency_score),
DefaultConstraintCreator())
bounds = {'I2': (0.01, 0.5)}
model = EnvelopmentModelWithVirtualWeightRestrictions(model, bounds)
start_time = datetime.datetime.now()
model_solution = model.run()
end_time = datetime.datetime.now()
utils_for_tests.check_if_category_is_within_virtual_limits(
model_solution, bounds)
work_book = xlwt.Workbook()
writer = XLSWriter(Parameters(), work_book, datetime.datetime.today(),
(end_time - start_time).total_seconds())
writer.write_data(model_solution)
work_book.save('tests/test_virtual_constraints_env_output.xls')
開發者ID:araith,項目名稱:pyDEA,代碼行數:21,
示例14: __init__
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def __init__(self, path, engine=None, mode='w', **engine_kwargs):
# Use the openpyxl module as the Excel writer.
from openpyxl.workbook import Workbook
super(_OpenpyxlWriter, self).__init__(path, mode=mode, **engine_kwargs)
if self.mode == 'a': # Load from existing workbook
from openpyxl import load_workbook
book = load_workbook(self.path)
self.book = book
else:
# Create workbook object with default optimized_write=True.
self.book = Workbook()
if self.book.worksheets:
try:
self.book.remove(self.book.worksheets[0])
except AttributeError:
# compat - for openpyxl <= 2.4
self.book.remove_sheet(self.book.worksheets[0])
開發者ID:awslabs,項目名稱:predictive-maintenance-using-machine-learning,代碼行數:23,
示例15: export2xls
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def export2xls(self):
import xlwt
font0 = xlwt.Font()
font0.bold = True
font0.height = 300
print((font0.height))
style0 = xlwt.XFStyle()
style0.font = font0
style1 = xlwt.XFStyle()
style1.num_format_str = 'D-MMM-YY'
wb = xlwt.Workbook()
ws = wb.add_sheet('A Test Sheet')
ws.write(0, 0, 'Test', style0)
ws.write(2, 0, 1)
ws.write(2, 1, 1)
ws.write(2, 2, xlwt.Formula("A3+B3"))
wb.save('datasheet.xls')
os.system("gnumeric datasheet.xls")
開發者ID:jjgomera,項目名稱:pychemqt,代碼行數:25,
示例16: write_excel_xls
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def write_excel_xls(path, sheet_name_list, value):
# 新建一個工作簿
workbook = xlwt.Workbook()
# 獲取需要寫入數據的行數
index = len(value)
for sheet_name in sheet_name_list:
# 在工作簿中新建一個表格
sheet = workbook.add_sheet(sheet_name)
# 往這個工作簿的表格中寫入數據
for i in range(0, index):
for j in range(0, len(value[i])):
sheet.write(i, j, value[i][j])
# 保存工作簿
workbook.save(path)
開發者ID:shengqiangzhang,項目名稱:examples-of-web-crawlers,代碼行數:21,
示例17: generate_excel_file
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def generate_excel_file():
"""Builds excel file in memory, later bind this data to BINARY file.
"""
import io
from xlwt import Workbook
file_excel = io.BytesIO() # create a file-like object
# Create the Excel file
workbook = Workbook(encoding='utf-8')
sheet = workbook.add_sheet('sheet1')
sheet.write(0, 0, 'column1')
sheet.write(0, 1, 'column2')
sheet.write(0, 2, 'column3')
sheet.write(1, 0, 'Field11')
sheet.write(1, 1, 'ఫీల్డ్12')
sheet.write(1, 2, 'fält13')
sheet.write(2, 0, 'поле21')
sheet.write(2, 1, 'फील्ड22')
sheet.write(2, 2, 'สนาม23')
workbook.save(file_excel)
return file_excel
開發者ID:streamsets,項目名稱:datacollector-tests,代碼行數:26,
示例18: export_topology
點讚 6
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def export_topology(self, **kwargs):
workbook = Workbook()
filename = kwargs["export_filename"]
if "." not in filename:
filename += ".xls"
for obj_type in ("device", "link"):
sheet = workbook.add_sheet(obj_type)
for index, property in enumerate(model_properties[obj_type]):
if property in db.dont_migrate[obj_type]:
continue
sheet.write(0, index, property)
for obj_index, obj in enumerate(db.fetch_all(obj_type), 1):
value = getattr(obj, property)
if type(value) == bytes:
value = str(self.decrypt(value), "utf-8")
sheet.write(obj_index, index, str(value))
workbook.save(self.path / "files" / "spreadsheets" / filename)
開發者ID:eNMS-automation,項目名稱:eNMS,代碼行數:19,
示例19: dataToExcel
點讚 5
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def dataToExcel():
ll=0
d=[i for i in os.listdir('mood_detail') if not i.endswith('.xls')]
for ii in d:
# wb=xlwt.Workbook()
# sheet=wb.add_sheet('sheet1',cell_overwrite_ok=True)
# sheet.write(0,0,'content')
# sheet.write(0,1,'createTime')
# sheet.write(0,2,'commentlist')
# sheet.write(0,3,'source_name')
# sheet.write(0,4,'cmtnum')
fl=[i for i in os.listdir('mood_detail/'+ii) if i.endswith('.json')]
print('mood_detail/'+ii)
k=1
for i in fl:
with open('mood_detail/'+ii+"/"+i,'r',encoding='latin-1') as w:
s=w.read()[17:-2]
js=json.loads(s)
print(i)
for s in js['msglist']:
ll+=1
m=-1
# sheet.write(k,m+1,str(s['content']))
# sheet.write(k,m+2,str(s['createTime']))
if not s['commentlist']:
s['commentlist']=list()
# sheet.write(k,m+3,str([(x['content'],x['createTime2'],x['name'],x['uin']) for x in list(s['commentlist'])]))
# sheet.write(k,m+4,str(s['source_name']))
# sheet.write(k,m+5,str(s['cmtnum']))
k+=1
if not os.path.exists('mood_detail/Excel/'):
os.mkdir('mood_detail/Excel/')
print(ll)
# try:
# wb.save('mood_detail/Excel/'+ii+'.xls')
# except Exception:
# print("error")
開發者ID:nanxung,項目名稱:QQ_zone,代碼行數:39,
示例20: create_workbook_with_sheet
點讚 5
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def create_workbook_with_sheet(name):
"""Removes non-alpha-numerical values in name."""
book = xlwt.Workbook()
valid_name = re.sub(r'[^\.0-9a-zA-Z]+', '', os.path.basename(name))
sheet1 = book.add_sheet(valid_name)
return book, sheet1
開發者ID:Dobiasd,項目名稱:img2xls,代碼行數:8,
示例21: _generate_excel
點讚 5
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def _generate_excel(response, columns, headers, grads):
import xlwt
book = xlwt.Workbook(encoding='utf-8')
sheet = book.add_sheet('Search Results')
hdrstyle = xlwt.easyxf('font: bold on; pattern: pattern solid, fore_colour grey25; align: horiz centre')
evenstyle = xlwt.easyxf('pattern: back_colour gray40')
oddstyle = xlwt.easyxf('pattern: pattern sparse_dots, fore_colour grey25')
# header row
sheet.write(0, 0, 'Graduate Student Search Results', xlwt.easyxf('font: bold on, height 320'))
sheet.row(0).height = 400
for i,hdr in enumerate(headers):
sheet.write(1, i, hdr, hdrstyle)
# data rows
for i,grad in enumerate(grads):
style = [oddstyle, evenstyle][i%2]
for j,column in enumerate(columns):
sheet.write(i+2, j, getattribute(grad, column, html=False), style)
# set column widths
for i,c in enumerate(columns):
wid = COLUMN_WIDTHS[c]
sheet.col(i).width = wid
count = len(grads)
sheet.write(count+4, 0, 'Number of students: %i' % (count))
sheet.write(count+5, 0, 'Report generated: %s' % (datetime.datetime.now()))
book.save(response)
開發者ID:sfu-fas,項目名稱:coursys,代碼行數:32,
示例22: get_xlsx_export
點讚 5
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def get_xlsx_export(self, context):
datas = self._get_datas(context)
output = io.BytesIO()
export_header = (
self.request.GET.get('export_xlsx_header', 'off') == 'on')
model_name = self.opts.verbose_name
book = xlsxwriter.Workbook(output)
sheet = book.add_worksheet(
u"%s %s" % (_(u'Sheet'), force_text(model_name)))
styles = {'datetime': book.add_format({'num_format': 'yyyy-mm-dd hh:mm:ss'}),
'date': book.add_format({'num_format': 'yyyy-mm-dd'}),
'time': book.add_format({'num_format': 'hh:mm:ss'}),
'header': book.add_format({'font': 'name Times New Roman', 'color': 'red', 'bold': 'on', 'num_format': '#,##0.00'}),
'default': book.add_format()}
if not export_header:
datas = datas[1:]
for rowx, row in enumerate(datas):
for colx, value in enumerate(row):
if export_header and rowx == 0:
cell_style = styles['header']
else:
if isinstance(value, datetime.datetime):
cell_style = styles['datetime']
elif isinstance(value, datetime.date):
cell_style = styles['date']
elif isinstance(value, datetime.time):
cell_style = styles['time']
else:
cell_style = styles['default']
sheet.write(rowx, colx, value, cell_style)
book.close()
output.seek(0)
return output.getvalue()
開發者ID:stormsha,項目名稱:StormOnline,代碼行數:38,
示例23: get_xls_export
點讚 5
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def get_xls_export(self, context):
datas = self._get_datas(context)
output = io.BytesIO()
export_header = (
self.request.GET.get('export_xls_header', 'off') == 'on')
model_name = self.opts.verbose_name
book = xlwt.Workbook(encoding='utf8')
sheet = book.add_sheet(
u"%s %s" % (_(u'Sheet'), force_text(model_name)))
styles = {'datetime': xlwt.easyxf(num_format_str='yyyy-mm-dd hh:mm:ss'),
'date': xlwt.easyxf(num_format_str='yyyy-mm-dd'),
'time': xlwt.easyxf(num_format_str='hh:mm:ss'),
'header': xlwt.easyxf('font: name Times New Roman, color-index red, bold on', num_format_str='#,##0.00'),
'default': xlwt.Style.default_style}
if not export_header:
datas = datas[1:]
for rowx, row in enumerate(datas):
for colx, value in enumerate(row):
if export_header and rowx == 0:
cell_style = styles['header']
else:
if isinstance(value, datetime.datetime):
cell_style = styles['datetime']
elif isinstance(value, datetime.date):
cell_style = styles['date']
elif isinstance(value, datetime.time):
cell_style = styles['time']
else:
cell_style = styles['default']
sheet.write(rowx, colx, value, style=cell_style)
book.save(output)
output.seek(0)
return output.getvalue()
開發者ID:stormsha,項目名稱:StormOnline,代碼行數:38,
示例24: build_result
點讚 5
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def build_result(self, coupon_descr_list):
stk_wb = xlwt.Workbook()
myfont = xlwt.Font()
mystyle = xlwt.XFStyle()
mystyle.font = myfont
sheet_name = str(date.today())
sheet = stk_wb.add_sheet(sheet_name, cell_overwrite_ok=True)
for index, item in enumerate(coupon_descr_list):
self._write_decision_data(item, index*5, sheet)
self._write_selected_data(item, index*5, sheet)
stk_wb.save('../output/funda_rotation_{}'.format(sheet_name) + '.xls')
開發者ID:licxcx,項目名稱:stockbot,代碼行數:15,
示例25: convert_csv_to_xls
點讚 5
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def convert_csv_to_xls(csv_repr):
"""
This method should be moved into pyxform
"""
# There should not be any blank lines in the "sheeted" CSV representation,
# but often times there are. Strip them out before any further processing;
# otherwise, `convert_csv_to_xls()` will raise an
# `invalid worksheet name u''` exception
csv_repr = ''.join([
line for line in csv_repr.splitlines(True) if line.strip().strip('"')
])
def _add_contents_to_sheet(sheet, contents):
cols = []
for row in contents:
for key in row.keys():
if key not in cols:
cols.append(key)
for ci, col in enumerate(cols):
sheet.write(0, ci, col)
for ri, row in enumerate(contents):
for ci, col in enumerate(cols):
val = row.get(col, None)
if val:
sheet.write(ri+1, ci, val)
encoded_csv = csv_repr.decode("utf-8").encode("utf-8")
dict_repr = xls2json_backends.csv_to_dict(StringIO.StringIO(encoded_csv))
workbook = xlwt.Workbook()
for sheet_name in dict_repr.keys():
# pyxform.xls2json_backends adds "_header" items for each sheet.....
if not re.match(r".*_header$", sheet_name):
cur_sheet = workbook.add_sheet(sheet_name)
_add_contents_to_sheet(cur_sheet, dict_repr[sheet_name])
# TODO: As XLS files are binary, I believe this should be `io.BytesIO()`.
string_io = StringIO.StringIO()
workbook.save(string_io)
string_io.seek(0)
return string_io
開發者ID:awemulya,項目名稱:kobo-predict,代碼行數:39,
示例26: reset_workbook
點讚 5
# 需要導入模塊: import xlwt [as 別名]
# 或者: from xlwt import Workbook [as 別名]
def reset_workbook(self):
self._workbook = Workbook()
self._sheets = {}
self._columns = defaultdict(list)
self._current_index = defaultdict(lambda: 1)
self._generated_sheet_name_dict = {}
開發者ID:awemulya,項目名稱:kobo-predict,代碼行數:8,
注:本文中的xlwt.Workbook方法示例整理自Github/MSDocs等源碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。
-
Java读写Excel之HSSFWorkbook、XSSFWorkbook、Workbook
2021-11-11 18:01:25Java读写Excel之HSSFWorkbook、XSSFWorkbook、Workbook 引入maven依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</...Java读写Excel之HSSFWorkbook、XSSFWorkbook、Workbook
引入maven依赖
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency>
HSSFWorkbook
读取xls文件,也就是老版本的97-2003版本的excel
读取
package com.excel; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * 一个EXCEL包含如下几个基础组成 * HSSFSheet:表单,通过HSSFWorkbook获取 * Row:行,通过HSSFSheet获取 * Cell:单元格,通过Row获取 * 下标均从0开始 * */ public class MyExcel { public static void getHssf() throws IOException { String local_path = System.getProperty("user.dir"); //获取当前用户的当前工作目录 String path = local_path+"/src/main/java/com/excel/97到2004excel.xls"; //添加上文件的路径,组成文件的绝对路径 File file=new File(path); FileInputStream fileInputStream=new FileInputStream(file); //通过流的方式读取文件 HSSFWorkbook hssfWorkbook=new HSSFWorkbook(fileInputStream); HSSFSheet hssfSheet=hssfWorkbook.getSheet("Sheet1"); //通过sheet的名字来获取数据 HSSFSheet hssfSheet1=hssfWorkbook.getSheetAt(0); //通过下标来获取数据 int firstRowNum=hssfSheet1.getFirstRowNum(); //获取第一行的下标 int lastRowNum = hssfSheet1.getLastRowNum(); //获取最后一行的下标 /** * 注意:比如我们这一行有四列,则lastRowNum=3,firstRowNum=0 * 所以下面的for循环为<= * */ for (int i=firstRowNum;i<=lastRowNum;i++){ Row row=hssfSheet1.getRow(i); //根据下标,获取对应行的数据 int firstCellNum=row.getFirstCellNum(); //获取对应行的第一个cell的下标 int lastCellNum=row.getLastCellNum(); //获取对应行的最后一个cell的下标 /** * 注意:比如这一行有四个单元格,则firstCellNum=0,lastCellNum=4,注意=4!!!!!,并不是等于3 * 所以下面的for循环为< * 之所以没有在循环外就确定这两个值,是因为你没有办法确定每一行的列数都一致 * */ List<String> list=new ArrayList<>(); //新建一个list用来存放数据 for (int j=firstCellNum;j<lastCellNum;j++){ Cell cell=row.getCell(j); //通过下标获取对应的单元格的信息 System.out.print(cell+"\t"); list.add(cell.toString()); } System.out.println(); //确保每一行数据打印出来都跨行 } fileInputStream.close(); //使用完成之后要记得关闭这个流 } public static void main(String[] args) throws IOException { MyExcel.getHssf(); } }
结果
姓名 年龄 职业 张三 18.0 法外狂徒 李四 19.0 小偷 王武 20.0 教师 男
写入
同XSSFWorkbook
XSSFWorkbook
读取xlsx文件,也就是高于2003版本的excel,读写均与HSSFWorkbook保持一致
读取
package com.excel; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * 一个EXCEL包含如下几个基础组成 * HSSFSheet:表单,通过HSSFWorkbook获取 * Row:行,通过HSSFSheet获取 * Cell:单元格,通过Row获取 * 下标均从0开始 * */ public class MyExcel { public static void getXssf() throws IOException { String local_path = System.getProperty("user.dir"); //获取当前用户的当前工作目录 String path = local_path+"/src/main/java/com/excel/xlsx的excel.xlsx"; //添加上文件的路径,组成文件的绝对路径 File file=new File(path); FileInputStream fileInputStream=new FileInputStream(file); //通过流的方式读取文件 XSSFWorkbook xssfWorkbook=new XSSFWorkbook(fileInputStream); XSSFSheet xssfSheet=xssfWorkbook.getSheet("Sheet1"); //通过sheet的名字来获取数据 XSSFSheet hssfSheet1=xssfWorkbook.getSheetAt(0); //通过下标来获取数据 int firstRowNum=hssfSheet1.getFirstRowNum(); //获取第一行的下标 int lastRowNum = hssfSheet1.getLastRowNum(); //获取最后一行的下标 /** * 注意:比如我们这一行有四列,则lastRowNum=3,firstRowNum=0 * 所以下面的for循环为<= * */ for (int i=firstRowNum;i<=lastRowNum;i++){ Row row=hssfSheet1.getRow(i); //根据下标,获取对应行的数据 int firstCellNum=row.getFirstCellNum(); //获取对应行的第一个cell的下标 int lastCellNum=row.getLastCellNum(); //获取对应行的最后一个cell的下标 /** * 注意:比如这一行有四个单元格,则firstCellNum=0,lastCellNum=4,注意=4!!!!!,并不是等于3 * 所以下面的for循环为< * 之所以没有在循环外就确定这两个值,是因为你没有办法确定每一行的列数都一致 * */ List<String> list=new ArrayList<>(); //新建一个list用来存放数据 for (int j=firstCellNum;j<lastCellNum;j++){ Cell cell=row.getCell(j); //通过下标获取对应的单元格的信息 System.out.print(cell+"\t"); list.add(cell.toString()); } System.out.println(); //确保每一行数据打印出来都跨行 } fileInputStream.close(); //使用完成之后要记得关闭这个流 } public static void main(String[] args) throws IOException { MyExcel.getXssf(); } }
结果
姓名 年龄 职业 张三 18.0 法外狂徒 李四 19.0 小偷 王武 20.0 教师 男
写入
package com.excel; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * 一个EXCEL包含如下几个基础组成 * HSSFSheet:表单,通过HSSFWorkbook获取 * Row:行,通过HSSFSheet获取 * Cell:单元格,通过Row获取 * 下标均从0开始 * */ public class MyExcel { public static void getXssf() throws IOException { XSSFWorkbook xssfWorkbook=new XSSFWorkbook(); XSSFSheet xssfSheet=xssfWorkbook.createSheet("nice"); //注意,这种新增sheet的方式,如果你的excel原来在第一个sheet页面上有内容,会自动覆盖原来的内容,所以尽量使用空的EXCEL文档 String[] biaoti=new String[]{"姓名","职业","年龄"}; Row row=xssfSheet.createRow(0); for (int i=0;i< biaoti.length;i++){ row.createCell(i).setCellValue(biaoti[i]); } String local_path = System.getProperty("user.dir"); //获取当前用户的当前工作目录 String path = local_path+"/src/main/java/com/excel/xlsx的excel.xlsx"; //添加上文件的路径,组成文件的绝对路径 File file=new File(path); FileOutputStream fileOutputStream=new FileOutputStream(file); xssfWorkbook.write(fileOutputStream); //通过流的方式写入到文件中中 fileOutputStream.close(); //使用完成之后要记得关闭这个流 } public static void main(String[] args) throws IOException { MyExcel.getXssf(); } }
Workbook
上面的HSSFWorkbook和XSSFWorkbook只能读取对应的文件格式,如果文件格式不对的话就会报错,那我们该如何防止这种问题呢
首先我们分别来看一下这两个类
public class XSSFWorkbook extends POIXMLDocument implements Workbook
和
public final class HSSFWorkbook extends POIDocument implements Workbook
发现都实现了Workbook接口,那我们就可以在新建WorkBook的时候根据文件的后缀名来判断创建哪种WorkBook
package com.excel; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileInputStream; import java.io.IOException; /** * 一个EXCEL包含如下几个基础组成 * HSSFSheet:表单,通过HSSFWorkbook获取 * Row:行,通过HSSFSheet获取 * Cell:单元格,通过Row获取 * 下标均从0开始 * */ public class MyExcel { public static void getXssf(String path) throws IOException { File file=new File(path); FileInputStream inputStream=new FileInputStream(file); Workbook workbook=null; boolean is2003Excel=path.toLowerCase().endsWith("xls")?true:false; if (is2003Excel){ workbook= new HSSFWorkbook(inputStream); }else { workbook = new XSSFWorkbook(inputStream); } Sheet sheet=workbook.getSheetAt(0); int firstRowNum=sheet.getFirstRowNum(); int lastRowNum=sheet.getLastRowNum(); for (int i=firstRowNum;i<=lastRowNum;i++){ Row row=sheet.getRow(i); int firstCellNum = row.getFirstCellNum(); int lastCellNum = row.getLastCellNum(); for (int j=firstCellNum;j<lastCellNum;j++){ Cell cell=row.getCell(j); System.out.print(cell.toString()+"\t"); } } inputStream.close(); //使用完成之后要记得关闭这个流 } public static void main(String[] args) throws IOException { String local_path = System.getProperty("user.dir"); //获取当前用户的当前工作目录 String path = local_path+"/src/main/java/com/excel/xlsx的excel.xlsx"; //添加上文件的路径,组成文件的绝对路径 MyExcel.getXssf(path); } }
-
Java Workbook.createCellStyle方法代碼示例
2021-02-26 18:55:09本文整理匯總了Java中org.apache.poi.ss.usermodel.Workbook.createCellStyle方法的典型用法代碼示例。如果您正苦於以下問題:Java Workbook.createCellStyle方法的具體用法?Java Workbook.createCellStyle怎麽用?... -
python运行不了xlrd.open_workbook()
2021-08-12 23:27:24代码是这样的: import xlrd data = xlrd.open_workbook('data_1.xlsx') 运行结果是这样的: C:\Users\73116\AppData\Local\Programs\Python\Python39\python.exe C:/Users/73116/Desktop/Myfiles/demo_1.py ... -
workbook对象
2020-12-19 07:02:287.1激活第一个和最后一个工作簿workbooks.count,workboks(i).activate7.2获取工作簿名称,使用名称引用工作簿;改工作簿名称不能用name属性,需用saveas方法workbooks(i).name7.3打开一个新工作簿(新建空工作簿),... -
Java OPI 两个workbook合并
2022-01-19 16:14:14public static HSSFWorkbook appendWorkBook(Workbook targetWorkBook, Workbook sourceWorkbook) { for (int j = 0; j < sourceWorkbook.getNumberOfSheets(); j++) { Sheet oldSheet = sourceWorkbook.... -
【Python_笔记】openpyxl中Workbook()和.load_workbook()区别
2022-05-20 13:14:37记录学习旅程~ 欢迎各位道友指教与交流~ 准备开始实操时发现一个问题,即Workbook()是创建一个类对象,而load_workbook()是一个方法加载存在的excel。 由于在学习openpyxl时吸取了不同教程,按照读取→编辑→再编辑... -
Apache POI的Workbook读取和写入execl文件
2021-10-18 16:12:25Workbook workbook = null; try { workbook = WorkbookFactory.create(new FileInputStream(file)); } catch (IOException e) { e.printStackTrace(); } // 获取文件的第几个Sheet,从0开始 Sheet sheetAt = ... -
workbook.getsheet
2021-03-08 06:03:16exportCellElemntToSheet... } edit by zwh 20090331 第 7 页共 8 页 sheet = workBook.getSheet(sheet......文件的工作簿.接下来我们就可以通过此文件 簿得到其他的东西了.以下是得到工作表有关的方法 int ge... -
Workbook.SaveAs方法
2022-02-11 09:11:18Workbook.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local) excel vba 保存... -
openpyxl.load_workbook打开excel文件报错Type Error
2021-05-16 16:32:58openpyxl.load_workbook(filepath+"\\{}".format(i)) sheet1=wb1["总结"] j=k cell1=sheet1.cell(row=4,column=1).value sheet2.cell(row=j,column=1).value... -
Workbook对象事件.zip源码EXCEL VBA宏编程Excel VBA实用技巧范例下载
2022-05-29 15:27:18Workbook对象事件.zip源码EXCEL VBA宏编程Excel VBA实用技巧范例下载Workbook对象事件.zip源码EXCEL VBA宏编程Excel VBA实用技巧范例下载Workbook对象事件.zip源码EXCEL VBA宏编程Excel VBA实用技巧范例下载Workbook... -
开发日记1:workbook简单使用
2022-03-31 00:04:25首先引入的依赖: <dependency> <groupId>aspose-cells</groupId> <artifactId>aspose-cells</artifactId> <...Workbook wb = new Workbook(); 创建worksheet...