查看完整版本: .net NPOI Excel cell文字置中
頁: [1]

focus78612 發表於 2015-7-27 03:35 PM

.net NPOI Excel cell文字置中

大家好

請問一下有經驗的高手們
我用NPOI 建出一個Excel檔
但是裡面的欄位文字我想讓它全部都置中對齊
google 找答案覺得最符合的是以下這兩行 style.Alignment = HorizontalAlignment.Center
style.Alignment = VerticalAlignment.Center目前的問題是,無論我怎麼餵style給cell
他就是不會置中
請問是我哪裡搞錯了嗎<div></div>

e77 發表於 2015-7-29 11:54 AM

我貼一個大約的程式,你會不會沒有宣告Dim cell As HSSFCell 這一段呀?
        ' 設定儲存格樣式與資料。
        Dim cell As HSSFCell = Nothing
'           設定標題
        Dim style1 As HSSFCellStyle = workbook.CreateCellStyle()

        style1.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER                     '水平置中
        style1.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.BOTTOM               '垂直置中
        style1.BorderTop = NPOI.SS.UserModel.CellBorderType.THIN                            '畫框線_上
        style1.BorderBottom = NPOI.SS.UserModel.CellBorderType.THIN                         '畫框線_下
        style1.BorderLeft = NPOI.SS.UserModel.CellBorderType.THIN                           '畫框線_左
        style1.BorderRight = NPOI.SS.UserModel.CellBorderType.THIN                          '畫框線_右
        style1.SetFont(font1)
cell.CellStyle = style1

...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

Jeepluo 發表於 2015-7-29 12:36 PM

本帖最後由 Jeepluo 於 2015-7-29 12:49 PM 編輯

此段程式是在網路找到的,本為 C# 把他改為了 VB了,看看你自己缺少了那個部份。
Dim workbook As New HSSFWorkbook()
Dim sheet As HSSFSheet = DirectCast(workbook.CreateSheet("工作表名稱"), HSSFSheet)
Dim Row As HSSFRow = DirectCast(sheet.CreateRow(0), HSSFRow)
Row.CreateCell(0).SetCellValue("測試文字")
Dim cs As HSSFCellStyle = DirectCast(workbook.CreateCellStyle(), HSSFCellStyle)
'啟動多行文字
cs.WrapText = True
'文字置中
cs.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.CENTER
cs.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER
'框線樣式及顏色
cs.BorderBottom = NPOI.SS.UserModel.BorderStyle.
cs.BorderLeft = NPOI.SS.UserModel.BorderStyle.THIN
cs.BorderRight = NPOI.SS.UserModel.BorderStyle.THIN
cs.BorderTop = NPOI.SS.UserModel.BorderStyle.THIN
cs.BottomBorderColor = NPOI.HSSF.Util.HSSFColor.GREY_50_PERCENT.index
cs.LeftBorderColor = NPOI.HSSF.Util.HSSFColor.GREY_50_PERCENT.index
cs.RightBorderColor = NPOI.HSSF.Util.HSSFColor.GREY_50_PERCENT.index
cs.TopBorderColor = NPOI.HSSF.Util.HSSFColor.GREY_50_PERCENT.index
'背景顏色
cs.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.GREY_25_PERCENT.index
cs.FillPattern = NPOI.SS.UserModel.FillPatternType.SOLID_FOREGROUND

Dim font1 As HSSFFont = DirectCast(workbook.CreateFont(), HSSFFont)
'字體顏色
font1.Color = NPOI.HSSF.Util.HSSFColor.DARK_BLUE.index
'字體粗體
font1.Boldweight = CShort(NPOI.SS.UserModel.FontBoldWeight.BOLD)
'字體尺寸
font1.FontHeightInPoints = 25

cs.SetFont(font1)
Row.GetCell(0).CellStyle = cs

'欄位寬度
sheet.SetColumnWidth(column.Ordinal, 5000)...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁: [1]