vb.net 使用NPOI控制Excel檔
'導入命名空間
Imports NPOI.HSSF.UserModel
Imports NPOI.HPSF
Imports NPOI.POIFS.FileSystem
Private Sub A1()'方法1-導到Excel
Dim workbook As HSSFWorkbook = New HSSFWorkbook()
Dim fs = New FileStream("C:\test1.xls", FileMode.Create) '建立一個Excel檔
Dim sheet As HSSFSheet = workbook.CreateSheet(" Sheet1") ' 新增試算表 Sheet名稱
Dim row As HSSFRow = sheet.CreateRow(0) '定義標題
row.CreateCell(0).SetCellValue("標題1")
row.CreateCell(1).SetCellValue("標題2")
Dim i As Integer
For i = 1 To 10
Dim row_body As HSSFRow = sheet.CreateRow(i)
Dim TP0 As String="內容1"
row_body.CreateCell(0).SetCellValue(TP0)
Dim TP0 As String="內容2"
row_body.CreateCell(1).SetCellValue(TP0)
Next
sheet.AutoSizeColumn(1) '自動列寬
workbook.Write(fs) '把該workbook寫到檔案裡
fs.Close() '释放对象
row = Nothing '释放对象
sheet = Nothing '释放对象
workbook = Nothing '释放对象
System.Diagnostics.Process.Start("C:\test1.xls") '打開excel檔案
End Sub
Private Sub A2()'方法2-導到Excel
Dim workbook As HSSFWorkbook = New HSSFWorkbook()
Dim cell As HSSFCell
Dim font As HSSFFont = workbook.CreateFont
Dim cs As HSSFCellStyle = workbook.CreateCellStyle
font.FontHeightInPoints = 12'設定字體大小
font.FontName = "宋体"'設定字體
cs.SetFont(font)
Dim mystyle1 As HSSFCellStyle = workbook.CreateCellStyle
mystyle1.DataFormat = HSSFDataFormat.GetBuiltinFormat("@")'設定格式1
Dim mystyle2 As HSSFCellStyle = workbook.CreateCellStyle
mystyle2.DataFormat = HSSFDataFormat.GetBuiltinFormat("0")'設定格式2
Dim mystyle3 As HSSFCellStyle = workbook.CreateCellStyle
mystyle3.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00")'設定格式3
Dim TP0 As String
Dim TP1 As Double
Dim fs = New FileStream("C:\test2.xls", FileMode.Create) '準備建立一個Excel檔
Dim sheet As HSSFSheet = workbook.CreateSheet("Sheet1") '== 新增試算表 Sheet名稱
Dim row As HSSFRow = sheet.CreateRow(0) '定義標題
row.CreateCell(0).SetCellValue("標題1")
row.CreateCell(1).SetCellValue("標題2")
row.CreateCell(2).SetCellValue("標題3")
For i = 1 To 10
TP0 = "測試1"
cell = sheet.CreateRow(i).CreateCell(0)'注意-和第二列不同CreateRow
cell.CellStyle = mystyle1'使用格式1
cell.SetCellValue(TP0)'填入值
TP0 = 1000.123456
cell = sheet.GetRow(i).CreateCell(1)'注意-和第一列不同GetRow
cell.CellStyle = mystyle2'使用格式2
cell.CellStyle = cs'字體及大小
cell.SetCellValue(TP1)'填入值
TP0 =1000.123456
cell = sheet.GetRow(i).CreateCell(2)
cell.CellStyle = mystyle3'使用格式3
cell.SetCellValue(TP1)'填入值
Next
For i = 0 To 2
sheet.AutoSizeColumn(i) '自動列寬
Next
workbook.Write(fs) '把該workbook寫到檔案裡
fs.Close() '释放对象
sheet = Nothing '释放对象
workbook = Nothing '释放对象
System.Diagnostics.Process.Start("C:\test2.xls") '打開excel檔案
End Sub
Private Sub A3()'方法3-開啟模版文件填入值
Dim fs = New FileStream("C:\test2.xls", FileMode.Open, FileAccess.Read) '打開一個現有的Excel檔
Dim workbook As HSSFWorkbook = New HSSFWorkbook(fs)
Dim cell As HSSFCell
Dim TP0 As String
Dim sheet As HSSFSheet = workbook.GetSheet("Sheet1") '== 打開試算表 Sheet名稱
TP0 = "填入測試"
cell = sheet.CreateRow(11).CreateCell(0)
cell.SetCellValue(TP0)'填入值
sheet.ForceFormulaRecalculation = True
Dim fs1 = New FileStream("C:\test3.xls", FileMode.Create) '另存一個Excel檔
workbook.Write(fs1) '把該workbook寫到檔案裡
fs.Close() '释放L对象
fs1.Close() '释放L对象
sheet = Nothing '释放L对象
workbook = Nothing '释放对象
System.Diagnostics.Process.Start("C:\test3.xls") '打開excel檔案
End Sub
'方法4 由Excel導出
Private Sub A4()
Dim i, n As Integer
n = ImportExcel("C:\test4.xls").Rows.Count'筆數
For i = 1 To n
DataGridView1.Item(0, i - 1).Value = ImportExcel("C:\test4.xls").Rows(i - 1).Item(0)
Next
End Sub
Public Shared Function ImportExcel(ByVal strSource As String) As DataTable
Dim hssfWorkbook As IWorkbook
Dim sheet As ISheet
Dim rows As System.Collections.IEnumerator
Dim dt As DataTable
Dim icount As Int32
Dim row As IRow
Dim dr As DataRow
Dim cell As ICell
hssfWorkbook = WorkbookFactory.Create(FileToStream(strSource)) '讀取Excel文檔
sheet = hssfWorkbook.GetSheetAt(0) '读取当前表数据
rows = sheet.GetRowEnumerator() '取得表数据值
icount = 0
dt = New DataTable()
While rows.MoveNext()
icount = icount + 1
row = rows.Current
dr = dt.NewRow
For i As Int32 = 0 To row.LastCellNum
cell = row.GetCell(i)
If cell Is Nothing Then
'dr(i) = DBNull.Value
Else
If icount = 1 Then
dt.Columns.Add(cell.ToString)
End If
dr(i) = cell.ToString
End If
Next
dt.Rows.Add(dr)
End While
dt.Rows.RemoveAt(0)
Return dt
End Function
Public Shared Function FileToStream(ByVal fileName As String) As Stream
Dim fileStream As FileStream
fileStream = New FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read) '打開Excel文檔
Dim bytes() As Byte = New Byte(fileStream.Length) {}
fileStream.Read(bytes, 0, bytes.Length) '讀取文檔的 byte()
fileStream.Close()
Dim stream As Stream = New MemoryStream(bytes) '把 byte()轉換成 Stream
Return stream
End Function
vb.net 使用NPOI控制Excel檔的更多相关文章
- NPOI控制Excel格式
1.//sheet.SetColumnWidth(3, 50 * 256); 控制第三列宽,单位为1/256个字符 dataRow.Height = 18 * 20; 控制行高,单位为1/20点 s ...
- 在 Server 端存取 Excel 檔案的利器:NPOI Library
转处 http://msdn.microsoft.com/zh-tw/ee818993.aspx Codeplex 軟體套件(Package)資訊 套件名稱 NPOI 作者 tonyqus, huse ...
- 通过vb.net 和NPOI实现对excel的读操作
通过vb.net 和NPOI实现对excel的读操作,很久很久前用过vb,这次朋友的代码是vb.net写的需要一个excel的操作, 就顾着着实现功能了,大家凑合着看吧 Option Explicit ...
- NPOI操作Excel辅助类
/// <summary> /// NPOI操作excel辅助类 /// </summary> public static class NPOIHelper { #region ...
- 使用NPOI创建Excel
一.NPOI 函式庫: NPOI 函式庫檔案有七個,NPOI 函式庫可以在 http://npoi.codeplex.com 中下載,分別是: NPOI.DLL:NPOI 核心函式庫. NPOI.DD ...
- NPOI之Excel——合并单元格、设置样式、输入公式
首先建立一个空白的工作簿用作测试,并在其中建立空白工作表,在表中建立空白行,在行中建立单元格,并填入内容: //建立空白工作簿 IWorkbook workbook = new HSSFWorkboo ...
- NPOI读写Excel组件封装Excel导入导出组件
后台管理系统多数情况会与Excel打交道,常见的就是Excel的导入导出,对于Excel的操作往往是繁琐且容易出错的,对于后台系统的导入导出交互过程往往是固定的,对于这部分操作,我们可以抽离出公共组件 ...
- NPOI导出Excel (C#) 踩坑 之--The maximum column width for an individual cell is 255 charaters
/******************************************************************* * 版权所有: * 类 名 称:ExcelHelper * 作 ...
- Asp.Net 使用Npoi导出Excel
引言 使用Npoi导出Excel 服务器可以不装任何office组件,昨天在做一个导出时用到Npoi导出Excel,而且所导Excel也符合规范,打开时不会有任何文件损坏之类的提示.但是在做导入时还是 ...
随机推荐
- java的poi 读取exc 文件
package lizikj.bigwheel.shop.util.excel; import java.io.File; import java.io.FileInputStream; import ...
- Unity3D之物理射线
射线:从一个点往一个方向,发射一根无限长的射线,这根射线会与场景中带有 Collider 组件的物体发生碰撞. 射线的使用: public class Test { private void Star ...
- sax 动态切换 抓取感兴趣的内容(把element当做documnet 处理)
由switch 类触发事件 import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.hel ...
- 125 open source Big Data architecture papers for data professionals
https://www.linkedin.com/pulse/100-open-source-big-data-architecture-papers-anil-madan
- 用Django ORM实现树状结构
前言 之前看对于用关系数据库实现树状结构的方法就知道一直做自关联的表,但是感觉自关联查询太慢了,最近看到一篇文章,感觉视野开拓了好多,文章:数据库表设计,没有最好只有最适合来自:微信. 下面就针对这里 ...
- 【转】再有人问你Http协议是什么,把这篇文章发给他
一.HTTP简介 1.HTTP协议,即超文本传输协议(Hypertext transfer protocol).是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相 ...
- 腾讯云播放器更新——TCplayer
概述 最近腾讯云播放器进行了更新,增加了TCplayer,支持点播播放.由于工作需要,了解了一下TCplayer,把心得记录下来,供以后开发时参考,相信对其他人也有用. 参考文档: TCPlayer开 ...
- 《机器学习实战(基于scikit-learn和TensorFlow)》第五章内容学习心得
本章在讲支持向量机(Support Vector Machine). 支持向量机,一个功能强大的机器学习模型,能够执行线性或非线性数据的分类.回归甚至异常值检测的任务.它适用于中小型数据集的分类. 线 ...
- Windows 10安装Python 3 7成功打印Hello World!
Python下载 Python最新源码,二进制文档,新闻资讯等可以在Python的官网查看到: Python官网:https://www.python.org/ 你可以在以下链接中下载 Python ...
- C# DataGridView下DataGridViewComboBoxColumn二级联动
效果: 代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Da ...