python模块介绍- xlwt 创建xls文件(excel)

python模块介绍- xlwt 创建xls文件(excel)

2013-06-24磁针石

#承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 博客:http://blog.csdn.net/oychw

 

#版权所有,转载刊登请来函联系

# 深圳测试自动化python项目接单群113938272深圳广州软件测试开发6089740

#深圳地摊群 66250781武冈洞口城步新宁乡情群49494279

#自动化测试和python群组: http://groups.google.com/group/automation_testing_python

 

 

#参考资料:《The Python Standard Library by Example2011》

#https://pypi.python.org/pypi/xlwt/0.7.5

#http://www.python-excel.org/

 

 

 

 

Xlrd是跨平台的excel生成模块。

31.1 xlwt– 实例

31.1.1 创建简单的excel文件

下面例子,创建一个名为mini.xls的文件,它有一个空sheet:'xlwt was here'。

from xlwt import *

 

w = Workbook()

ws = w.add_sheet('xlwt was here')

w.save('mini.xls')

Workbook类初始化时有encoding和style_compression参数。

encoding,设置字符编码,一般要这样设置:w = Workbook(encoding='utf-8'),就可以在excel中输出中文了。默认是ascii。当然要记得在文件头部添加:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

style_compression表示是否压缩,不常用。

Workbook还有一些属性:

Owner设置文档所有者。

country_code:国家码

wnd_protect:窗口保护

obj_protect:对象保护

Protect:保护

backup_on_save:保存时备份

Hpos:横坐标

Vpos:纵坐标

Width:宽度

Height:高度

active_sheet:活动sheet

tab_width:tab宽度

wnd_visible:窗口是否可见

wnd_mini:窗口最小化

hscroll_visible:横向滚动条是否可见。

vscroll_visible:纵向滚动条是否可见。

tabs_visible:tab是否可见。

dates_1904:是否使用1904日期系统

use_cell_values:单元格的值

default_style:默认样式

colour_RGB:颜色

比如设置国家码:

fromxlwt import *

 

w= Workbook()

w.country_code= 61

ws= w.add_sheet('AU')

w.save('country.xls')

方法有:add_style,add_font,add_str,del_str,str_index,add_rt,rt_index,add_sheet,get_sheet,raise_bad_sheetname,convert_sheetindex,setup_xcall,add_sheet_reference。

31.1.2 插入图片

add_sheet 会返回一个Worksheet 类。创建的时候有可选参数cell_overwrite_ok,表示是否可以覆盖单元格,其实是Worksheet实例化的一个参数,默认值是False。

Worksheet初始化的参数有sheetname,parent_book,cell_overwrite_ok。

Worksheet的属性有:Row,Column,explicit_magn_setting(默认False),visibility(默认0),split_position_units_are_twips(默认False),row_default_height_mismatch,row_default_hidden,row_default_space_above,row_default_space_below,last_used_row,first_used_row,last_used_col,row_tempfile。以上属性类定义中。

函数构成的属性有:name,parent(只读),rows(只读),cols(只读),merged_ranges(只读),bmp_rec(只读),show_formulas,show_grid,show_headers,panes_frozen,auto_colour_grid,cols_right_to_left,show_outline,remove_splits,selected,sheet_visible,page_preview,first_visible_row,first_visible_col,grid_colour,preview_magn,normal_magn,scl_magn,vert_split_pos,horz_split_pos,vert_split_first_visible,horz_split_first_visible,show_auto_page_breaks,dialogue_sheet,auto_style_outline,outline_below,outline_right,fit_num_pages,show_row_outline,show_col_outline,alt_expr_eval,alt_formula_entries,row_default_height,col_default_width,calc_mode,calc_count,RC_ref_mode,iterations_on,delta,save_recalc,print_headers,print_grid,vert_page_breaks,horz_page_breaks,header_str,footer_str,print_centered_vert,print_centered_horz,left_margin,right_margin,top_margin,bottom_margin,paper_size_code,print_scaling,start_page_number,fit_width_to_pages,fit_height_to_pages,print_in_rows,portrait,print_colour,print_draft,print_notes,print_notes_at_end,print_omit_errors,print_hres,print_vres,header_margin,footer_margin,copies_num,wnd_protect,obj_protect,protect,scen_protect,password。

方法有:get_parent,write,write_rich_text,merge,write_merge,insert_bitmap,col,row,row_height,col_width。

下面例子使用 insert_bitmap来插入图片。

from xlwt import *,

 

w = Workbook()

ws = w.add_sheet('Image')

ws.insert_bitmap('python.bmp', 2, 2)

ws.insert_bitmap('python.bmp', 10, 2)

 

w.save('image.xls')

31.1.3 设置样式

下面例子改变字体的高度。

 

#!/usr/bin/envpython

#-*- coding: utf-8 -*-

#Copyright (C) 2005 Kiseliov Roman

 

fromxlwt import *

 

w= Workbook(encoding='utf-8')

ws= w.add_sheet('Hey, Dude')

 

fori in range(6, 80):

    fnt = Font()

    fnt.height = i*20

    style = XFStyle()

    style.font = fnt

    ws.write(i, 1, '武冈')

    ws.row(i).set_style(style)

w.save('row_styles.xls')

               XFStyle用于设置字体样式,有描述字符串num_format_str,字体font,居中alignment,边界borders,模式pattern,保护protection等属性。另外还可以不写单元格,直接设置格式,比如:

frompyExcelerator import *

 

w= Workbook()

ws= w.add_sheet('Hey, Dude')

 

fori in range(6, 80):

    fnt = Font()

    fnt.height = i*20

    style = XFStyle()

    style.font = fnt

    ws.row(i).set_style(style)

w.save('row_styles_empty.xls')

                设置列宽:ws.col(i).width = 0x0d00 + i

31.1.4 更多实例

下面例子输出了红色的”Test”,并在第3行包含了公式。

importxlwt

fromdatetime import datetime

 

font0= xlwt.Font()

font0.name= 'Times New Roman'

font0.colour_index= 2

font0.bold= True

 

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(1,0, datetime.now(), style1)

ws.write(2,0, 1)

ws.write(2,1, 1)

ws.write(2,2, xlwt.Formula("A3+B3"))

 

wb.save('example.xls')

这里另有一个公式的实例:

fromxlwt import ExcelFormulaParser, ExcelFormula

importsys

 

f= ExcelFormula.Formula(

"""-((1.80 + 2.898 * 1)/(1.80 + 2.898))*

AVERAGE((1.80+ 2.898 * 1)/(1.80 + 2.898);

        (1.80 + 2.898 * 1)/(1.80 + 2.898);

        (1.80 + 2.898 * 1)/(1.80 + 2.898)) +

SIN(PI()/4)""")

合并单元格的实例,注意write_merge,1,2个参数表示行数,3,4的参数表示列数。

 

fromxlwt import *

 

wb= Workbook()

ws0= wb.add_sheet('sheet0')

 

 

fnt= Font()

fnt.name= 'Arial'

fnt.colour_index= 4

fnt.bold= True

 

borders= Borders()

borders.left= 6

borders.right= 6

borders.top= 6

borders.bottom= 6

 

style= XFStyle()

style.font= fnt

style.borders = borders

 

ws0.write_merge(3,3, 1, 5, 'test1', style)

ws0.write_merge(4,10, 1, 5, 'test2', style)

ws0.col(1).width= 0x0d00

 

wb.save('merged0.xls')

日期格式的实例

fromxlwt import *

fromdatetime import datetime

 

w= Workbook()

ws= w.add_sheet('Hey, Dude')

 

fmts= [

    'M/D/YY',

    'D-MMM-YY',

    'D-MMM',

    'MMM-YY',

    'h:mm AM/PM',

    'h:mm:ss AM/PM',

    'h:mm',

    'h:mm:ss',

    'M/D/YY h:mm',

    'mm:ss',

    '[h]:mm:ss',

    'mm:ss.0',

]

 

i= 0

forfmt in fmts:

    ws.write(i, 0, fmt)

 

    style = XFStyle()

    style.num_format_str = fmt

 

    ws.write(i, 4, datetime.now(), style)

 

    i += 1

 

w.save('dates.xls')

 

下面展示了不同边框和删除样式的字体:

fromxlwt import *

 

font0= Font()

font0.name= 'Times New Roman'

font0.struck_out= True

font0.bold= True

 

style0= XFStyle()

style0.font= font0

 

 

wb= Workbook()

ws0= wb.add_sheet('0')

 

ws0.write(1,1, 'Test', style0)

 

fori in range(0, 0x53):

    borders = Borders()

    borders.left = i

    borders.right = i

    borders.top = i

    borders.bottom = i

 

    style = XFStyle()

    style.borders = borders

 

    ws0.write(i, 2, '', style)

    ws0.write(i, 3, hex(i), style0)

 

ws0.write_merge(5,8, 6, 10, "")

 

wb.save('blanks.xls')

 

 

下面展示了不同颜色的字体,可以作为颜色参考:

 

from xlwt import *

 

font0 = Font()

font0.name = 'Times New Roman'

font0.struck_out = True

font0.bold = True

 

style0 = XFStyle()

style0.font = font0

 

 

wb = Workbook()

ws0 = wb.add_sheet('0')

 

ws0.write(1, 1, 'Test', style0)

 

for i in range(0, 0x53):

    fnt = Font()

    fnt.name = 'Arial'

    fnt.colour_index = i

    fnt.outline = True

 

    borders = Borders()

    borders.left = i

 

    style = XFStyle()

    style.font = fnt

    style.borders =borders

 

    ws0.write(i, 2,'colour', style)

    ws0.write(i, 3,hex(i), style0)

 

 

wb.save('format.xls')

超级链接的插入方法:

 

fromxlwt import *

 

f= Font()

f.height= 20*72

f.name= 'Verdana'

f.bold= True

f.underline= Font.UNDERLINE_DOUBLE

f.colour_index= 4

 

h_style= XFStyle()

h_style.font= f

 

w= Workbook()

ws= w.add_sheet('F')

 

##############

##NOTE: parameters are separated by semicolon!!!

##############

 

n= "HYPERLINK"

ws.write_merge(1,1, 1, 10, Formula(n +'("http://www.irs.gov/pub/irs-pdf/f1000.pdf";"f1000.pdf")'),h_style)

ws.write_merge(2,2, 2, 25, Formula(n +'("mailto:roman.kiseliov@gmail.com?subject=pyExcelerator-feedback&Body=Hello,%20Roman!";"pyExcelerator-feedback")'),h_style)

 

w.save("hyperlinks.xls")

 

        在没有指定编码的情况下,也可以通过unicode输出字符,不过这样比较费劲,建议还是使用utf-8编码:

 

fromxlwt import *

 

w= Workbook()

ws1= w.add_sheet(u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK SMALL LETTER BETA}\N{GREEKSMALL LETTER GAMMA}')

 

ws1.write(0,0, u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK SMALL LETTER BETA}\N{GREEK SMALLLETTER GAMMA}')

ws1.write(1,1, u'\N{GREEK SMALL LETTER DELTA}x = 1 + \N{GREEK SMALL LETTER DELTA}')

 

ws1.write(2,0,u'A\u2262\u0391.')     # RFC2152 example

ws1.write(3,0,u'Hi Mom -\u263a-!')   # RFC2152 example

ws1.write(4,0,u'\u65E5\u672C\u8A9E') # RFC2152 example

ws1.write(5,0,u'Item 3 is \u00a31.') # RFC2152 example

ws1.write(8,0,u'\N{INTEGRAL}')       # RFC2152 example

 

w.add_sheet(u'A\u2262\u0391.')     # RFC2152 example

w.add_sheet(u'HiMom -\u263a-!')   # RFC2152 example

one_more_ws= w.add_sheet(u'\u65E5\u672C\u8A9E') # RFC2152 example

w.add_sheet(u'Item3 is \u00a31.') # RFC2152 example

 

one_more_ws.write(0,0, u'\u2665\u2665')

 

w.add_sheet(u'\N{GREEKSMALL LETTER ETA WITH TONOS}')

w.save('unicode1.xls')

 

冻结:

fromxlwt import *

 

w= Workbook()

ws1= w.add_sheet('sheet 1')

ws2= w.add_sheet('sheet 2')

ws3= w.add_sheet('sheet 3')

ws4= w.add_sheet('sheet 4')

ws5= w.add_sheet('sheet 5')

ws6= w.add_sheet('sheet 6')

 

fori in range(0x100):

    ws1.write(i/0x10, i%0x10, i)

 

fori in range(0x100):

    ws2.write(i/0x10, i%0x10, i)

 

fori in range(0x100):

    ws3.write(i/0x10, i%0x10, i)

 

fori in range(0x100):

    ws4.write(i/0x10, i%0x10, i)

 

fori in range(0x100):

    ws5.write(i/0x10, i%0x10, i)

 

fori in range(0x100):

    ws6.write(i/0x10, i%0x10, i)

 

ws1.panes_frozen= True

ws1.horz_split_pos= 2

 

ws2.panes_frozen= True

ws2.vert_split_pos= 2

 

ws3.panes_frozen= True

ws3.horz_split_pos= 1

ws3.vert_split_pos= 1

 

ws4.panes_frozen= False

ws4.horz_split_pos= 12

ws4.horz_split_first_visible= 2

 

ws5.panes_frozen= False

ws5.vert_split_pos= 40

ws4.vert_split_first_visible= 2

 

ws6.panes_frozen= False

ws6.horz_split_pos= 12

ws4.horz_split_first_visible= 2

ws6.vert_split_pos= 40

ws4.vert_split_first_visible= 2

 

w.save('panes.xls')

 

 

各种数值格式:

fromxlwt import *

 

w= Workbook()

ws= w.add_sheet('Hey, Dude')

 

fmts= [

    'general',

    '0',

    '0.00',

    '#,##0',

    '#,##0.00',

    '"$"#,##0_);("$"#,##',

   '"$"#,##0_);[Red]("$"#,##',

   '"$"#,##0.00_);("$"#,##',

   '"$"#,##0.00_);[Red]("$"#,##',

    '0%',

    '0.00%',

    '0.00E+00',

    '# ?/?',

    '# ??/??',

    'M/D/YY',

    'D-MMM-YY',

    'D-MMM',

    'MMM-YY',

    'h:mm AM/PM',

    'h:mm:ss AM/PM',

    'h:mm',

    'h:mm:ss',

    'M/D/YY h:mm',

    '_(#,##0_);(#,##0)',

    '_(#,##0_);[Red](#,##0)',

    '_(#,##0.00_);(#,##0.00)',

    '_(#,##0.00_);[Red](#,##0.00)',

    '_("$"* #,##0_);_("$"*(#,##0);_("$"* "-"_);_(@_)',

    '_(* #,##0_);_(* (#,##0);_(*"-"_);_(@_)',

    '_("$"*#,##0.00_);_("$"* (#,##0.00);_("$"*"-"??_);_(@_)',

    '_(* #,##0.00_);_(* (#,##0.00);_(*"-"??_);_(@_)',

    'mm:ss',

    '[h]:mm:ss',

    'mm:ss.0',

    '##0.0E+0',

    '@'  

]

 

i= 0

forfmt in fmts:

    ws.write(i, 0, fmt)

 

    style = XFStyle()

    style.num_format_str = fmt

 

    ws.write(i, 4, -1278.9078, style)

 

    i += 1

 

w.save('num_formats.xls')

 

 

更多的公式:

fromxlwt import *

 

w= Workbook()

ws= w.add_sheet('F')

 

ws.write(0,0, Formula("-(1+1)"))

ws.write(1,0, Formula("-(1+1)/(-2-2)"))

ws.write(2,0, Formula("-(134.8780789+1)"))

ws.write(3,0, Formula("-(134.8780789e-10+1)"))

ws.write(4,0, Formula("-1/(1+1)+9344"))

 

ws.write(0,1, Formula("-(1+1)"))

ws.write(1,1, Formula("-(1+1)/(-2-2)"))

ws.write(2,1, Formula("-(134.8780789+1)"))

ws.write(3,1, Formula("-(134.8780789e-10+1)"))

ws.write(4,1, Formula("-1/(1+1)+9344"))

 

ws.write(0,2, Formula("A1*B1"))

ws.write(1,2, Formula("A2*B2"))

ws.write(2,2, Formula("A3*B3"))

ws.write(3,2, Formula("A4*B4*sin(pi()/4)"))

ws.write(4,2, Formula("A5%*B5*pi()/1000"))

 

##############

##NOTE: parameters are separated by semicolon!!!

##############

 

 

ws.write(5,2,Formula("C1+C2+C3+C4+C5/(C1+C2+C3+C4/(C1+C2+C3+C4/(C1+C2+C3+C4)+C5)+C5)-20.3e-2"))

ws.write(5,3, Formula("C1^2"))

ws.write(6,2, Formula("SUM(C1;C2;;;;;C3;;;C4)"))

ws.write(6,3, Formula("SUM($A$1:$C$5)"))

 

ws.write(7,0, Formula('"lkjljllkllkl"'))

ws.write(7,1, Formula('"yuyiyiyiyi"'))

ws.write(7,2, Formula('A8 & B8 & A8'))

ws.write(8,2, Formula('now()'))

 

ws.write(10,2, Formula('TRUE'))

ws.write(11,2, Formula('FALSE'))

ws.write(12,3, Formula('IF(A1>A2;3;"hkjhjkhk")'))

 

w.save('formulas.xls')

保护实例:

fromxlwt import *

 

fnt= Font()

fnt.name= 'Arial'

fnt.colour_index= 4

fnt.bold= True

 

borders= Borders()

borders.left= 6

borders.right= 6

borders.top= 6

borders.bottom= 6

 

style= XFStyle()

style.font= fnt

style.borders= borders

 

wb= Workbook()

 

ws0= wb.add_sheet('Rows Outline')

 

ws0.write_merge(1,1, 1, 5, 'test 1', style)

ws0.write_merge(2,2, 1, 4, 'test 1', style)

ws0.write_merge(3,3, 1, 3, 'test 2', style)

ws0.write_merge(4,4, 1, 4, 'test 1', style)

ws0.write_merge(5,5, 1, 4, 'test 3', style)

ws0.write_merge(6,6, 1, 5, 'test 1', style)

ws0.write_merge(7,7, 1, 5, 'test 4', style)

ws0.write_merge(8,8, 1, 4, 'test 1', style)

ws0.write_merge(9,9, 1, 3, 'test 5', style)

 

ws0.row(1).level= 1

ws0.row(2).level= 1

ws0.row(3).level= 2

ws0.row(4).level= 2

ws0.row(5).level= 2

ws0.row(6).level= 2

ws0.row(7).level= 2

ws0.row(8).level= 1

ws0.row(9).level= 1

 

 

ws1= wb.add_sheet('Columns Outline')

 

ws1.write_merge(1,1, 1, 5, 'test 1', style)

ws1.write_merge(2,2, 1, 4, 'test 1', style)

ws1.write_merge(3,3, 1, 3, 'test 2', style)

ws1.write_merge(4,4, 1, 4, 'test 1', style)

ws1.write_merge(5,5, 1, 4, 'test 3', style)

ws1.write_merge(6,6, 1, 5, 'test 1', style)

ws1.write_merge(7,7, 1, 5, 'test 4', style)

ws1.write_merge(8,8, 1, 4, 'test 1', style)

ws1.write_merge(9,9, 1, 3, 'test 5', style)

 

ws1.col(1).level= 1

ws1.col(2).level= 1

ws1.col(3).level= 2

ws1.col(4).level= 2

ws1.col(5).level= 2

ws1.col(6).level= 2

ws1.col(7).level= 2

ws1.col(8).level= 1

ws1.col(9).level= 1

 

 

ws2= wb.add_sheet('Rows and Columns Outline')

 

ws2.write_merge(1,1, 1, 5, 'test 1', style)

ws2.write_merge(2,2, 1, 4, 'test 1', style)

ws2.write_merge(3,3, 1, 3, 'test 2', style)

ws2.write_merge(4,4, 1, 4, 'test 1', style)

ws2.write_merge(5,5, 1, 4, 'test 3', style)

ws2.write_merge(6,6, 1, 5, 'test 1', style)

ws2.write_merge(7,7, 1, 5, 'test 4', style)

ws2.write_merge(8,8, 1, 4, 'test 1', style)

ws2.write_merge(9,9, 1, 3, 'test 5', style)

 

ws2.row(1).level= 1

ws2.row(2).level= 1

ws2.row(3).level= 2

ws2.row(4).level= 2

ws2.row(5).level= 2

ws2.row(6).level= 2

ws2.row(7).level= 2

ws2.row(8).level= 1

ws2.row(9).level= 1

 

ws2.col(1).level= 1

ws2.col(2).level= 1

ws2.col(3).level= 2

ws2.col(4).level= 2

ws2.col(5).level= 2

ws2.col(6).level= 2

ws2.col(7).level= 2

ws2.col(8).level= 1

ws2.col(9).level= 1

 

 

ws0.protect= True

ws0.wnd_protect= True

ws0.obj_protect= True

ws0.scen_protect= True

ws0.password= "123456"

 

ws1.protect= True

ws1.wnd_protect= True

ws1.obj_protect= True

ws1.scen_protect= True

ws1.password= "abcdefghij"

 

ws2.protect= True

ws2.wnd_protect= True

ws2.obj_protect= True

ws2.scen_protect= True

ws2.password= "ok"

 

wb.protect= True

wb.wnd_protect= True

wb.obj_protect= True

wb.save('protection.xls')

31.1.5 完整实例

下面程序的write_xls对输出xls进行了一定封装,比较有实用意义。

#Write an XLS file with a single worksheet, containing

#a heading row and some rows of data.

 

importxlwt

importdatetime

ezxf= xlwt.easyxf

 

defwrite_xls(file_name,sheet_name, headings, data, heading_xf, data_xfs):

    book = xlwt.Workbook()

    sheet = book.add_sheet(sheet_name)

    rowx = 0

    for colx, value in enumerate(headings):

        sheet.write(rowx, colx, value,heading_xf)

    sheet.set_panes_frozen(True) # frozenheadings instead of split panes

    sheet.set_horz_split_pos(rowx+1) # ingeneral, freeze after last heading row

    sheet.set_remove_splits(True) # if userdoes unfreeze, don't leave a split there

    for row in data:

        rowx += 1

        for colx, value in enumerate(row):

            sheet.write(rowx, colx, value,data_xfs[colx])

    book.save(file_name)

 

if__name__ == '__main__':

    import sys

    mkd = datetime.date

    hdngs = ['Date', 'Stock Code', 'Quantity','Unit Price', 'Value', 'Message']

    kinds = 'date    text          int         price         money    text'.split()

    data = [

        [mkd(2007, 7, 1), 'ABC', 1000,1.234567, 1234.57, ''],

        [mkd(2007, 12, 31), 'XYZ', -100,4.654321, -465.43, 'Goods returned'],

        ] + [

            [mkd(2008, 6, 30), 'PQRCD', 100,2.345678, 234.57, ''],

        ] * 100

 

    heading_xf = ezxf('font: bold on; align:wrap on, vert centre, horiz center')

    kind_to_xf_map = {

        'date':ezxf(num_format_str='yyyy-mm-dd'),

        'int': ezxf(num_format_str='#,##0'),

        'money': ezxf('font: italic on;pattern: pattern solid, fore-colour grey25',

            num_format_str='$#,##0.00'),

        'price': ezxf(num_format_str='#0.000000'),

        'text': ezxf(),

        }

    data_xfs = [kind_to_xf_map[k] for k inkinds]

    write_xls('xlwt_easyxf_simple_demo.xls','Demo', hdngs, data, heading_xf, data_xfs)

 

参考资料:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402641.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot(六):SpringBoot整合Redis

From: https://blog.csdn.net/plei_yue/article/details/79362372 前言 在本篇文章中将SpringBoot整合Redis&#xff0c;使用的是RedisTemplate&#xff0c;分别实现了SpringBoot与redis的单机版、集群版、哨兵模式的整合。 Maven依赖 <!-- 整合redis --> <…

[4]Telerik Grid 简单使用方法

1.columns <% Html.Telerik().Grid(Model).Name("Orders").Columns(columns >{//绑定列名columns.Bound(o > o.OrderID);//隐藏字段columns.Bound(o > o.OrderID).Hidden(true); //绑定列标题 columns.Bound(o > o.OrderDate).Title("…

Springboot 2.x版本 RedisCacheManager 类的配置,【与1.x 略有不同】

From: https://blog.csdn.net/qq_15071263/article/details/82897330 文章目录 Springboot 2.x版本 RedisCacheManager 类的配置&#xff0c;【与1.x 略有不同】 1、1.x 配置方式 2、2.x 配置方式 Springboot 2.x版本 RedisCacheMan…

.net应用程序中添加chm帮助文档打开显示此程序无法显示网页问题

在做.net大作业时添加了chm帮助文档结果在打开时显示“此程序无法显示网页问题”&#xff0c;但是把帮助文档拷到别的路径下却显示正常&#xff0c; 经过从网上查找&#xff0c;终于找到了答案&#xff1a; (1)、chm文件的路径中不能含有“#”“%”等字符&#xff0c;当含有这些…

新磁盘创建lvm并挂载

1 ### 1.查看硬盘2 fdisk -l3 4 ### 删除分区5 fdisk /dev/sdc6 ### 按d删除&#xff0c;按w保存并退出7 8 ### 创建pv9 pvcreate /dev/sdc 10 11 ### 创建 vg 12 vgcreate vg_hdp /dev/sdc 13 14 ### 创建 lv 15 lvcreate -L 200G -n lv_hdp vg_hdp 16 17 ### 格式化 lv 18…

用unison来同步你的远程文件夹 - Fwolf's Blog

用unison来同步你的远程文件夹 - Fwolfs Blog: "" (Via.)转载于:https://www.cnblogs.com/devops/p/3157101.html

MyBatis 实践

From&#xff1a; https://www.cnblogs.com/luyiba/p/6303717.html MyBatis简介 MyBatis前身是iBatis,是一个基于Java的数据持久层/对象关系映射(ORM)框架. MyBatis是对JDBC的封装,使开发人员只需关注SQL本身,而不需花费过多的精力去处理如注册驱动、设置参数、创建Connectio…

皮克斯背后新技术

2019独角兽企业重金招聘Python工程师标准>>> 皮克斯每创作一部动画作品总会给观众带来或多或少的惊喜&#xff0c;而很多影视动画从业人员也习惯于关注他们的每一部作品的制作&#xff0c;因为新技术往往就在这些制作过程中诞生&#xff0c;如今皮克斯动画已经成为C…

@Retention注解

From: https://blog.csdn.net/asdgbc/article/details/70196749 日常开发中经常用到注解&#xff0c;所以也会经常使用到Retention注解&#xff0c;写下这篇文章做个记。 Reteniton的作用是定义被它所注解的注解保留多久&#xff0c;一共有三种策略&#xff0c;定义在Retentio…

[翻译]:怎样从C/C++代码中对C#进行回调

声明:网络上类似的中文博客大有存在&#xff0c;本人知识水平有限&#xff0c;业余爱好&#xff0c;也是为了备份收藏How to make a callback to C# from C/C code 本着共享知识的初衷&#xff0c;翻译一份给大家参考&#xff0c;为了便于阅读不至于拗口&#xff0c;没有按照原…

android thread实例

http://blog.csdn.net/awebkit/article/details/6982748

Linux Centos关机命令

centos关机命令&#xff1a; 1、halt 立马关机 2、shutdown -h 10 1分钟后自动关机 3、poweroff 立刻关机,并且电源也会断掉 4、shutdown -h now 立刻关机(root用户使用) 如果是通过shutdown命令设置关机的话&#xff0c;可以用shutdown -c命令取消重启转载于:https://www.cnbl…

RedisTemplate和StringRedisTemplate使用

From: https://blog.csdn.net/qiesheng/article/details/83897634 //向redis里存入数据和设置缓存时间 stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS); //val做-1操作 stringRedisTemplate.boundValueOps("test&q…

linux中yum搭建与配置

服务器配置&#xff1a;1、把光盘中的内容全部拷到/var/ftp/Server/中mount /dev/cdrom /mnt //挂载光盘rpm -ivh /mnt/Packages/vsftpd-2.2.2-11.el6.i686.rpm //安装vsftpd cp -rf /mnt/Packages /var/ftp/Server //复制光盘rpm包到本地2、安装createreporpm -…

数据结构:二叉查找树(C语言实现)

数据结构&#xff1a;二叉查找树 二叉查找树 基础知识 关于二叉树的基础知识&#xff0c;请看我的一篇博客:二叉树的链式存储 二叉查找树的特征 二叉查找树或者是一棵空树&#xff0c;或者是具有下列性质的二叉树&#xff1a;  1.若其左子树不空&#xff0c;则左子树上所有结…

Effective Java 电子书 apk版本下载

下载安装包以后&#xff0c;安装即可阅读该书了&#xff0c;并且实时展示每章节代码哦&#xff0c;并且可以运行哦&#xff0c;赶快下载体验吧. Effective Java中文第二版下载地址&#xff1a;下载 应用截图&#xff1a; 转载于:https://www.cnblogs.com/spring87/p/6090010.ht…

SpringBoot解决ajax跨域问题

From: https://www.jianshu.com/p/e57ed1ee3070 利用注解的方式解决AJAX请求跨域问题一、第一种方式: 1、编写一个支持跨域请求的 Configuration import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.…

dataguru北京线下沙龙-第二部 《Oracle 索引优化思路--案例分享 -- 刘盛》

【视频&#xff1a;dataguru北京线下沙龙-第二部 《Oracle 索引优化思路--案例分享 -- 刘盛》 /微笑】

1^2+2^2+……+n^2的公式证明

求^2就从^3入手,求^3就从^4入手,求^t就从^(t1)入手 因为(n1)^3n^33n^23n1 所以2^31^33*1^23*11 3^32^33*2^23*21 …… (n1)^3n^33n^22n1 所以2^33^3……(n1)^31^32^3……3*(1^22^2……^2)3(12……n)(11……1) 所以3(1^22^2……n^2)n^33n^22n1-a-3-[n(n1)]/2-n 所以S(An)1^22^2……

mysql 数据库授权(给某个用户授权某个数据库)

先设置该用户只有show database权限grant select,insert,update,delete on redmine1.* to jira"%" identified by "jira";授权命令GRANT 语句的语法如下&#xff1a;GRANT privileges (columns)ON whatTO user IDENTIFIEDBY "password"WITH GRAN…