c# display pdf in browser : Adding page numbers to pdf control application utility azure html asp.net visual studio python-excel4-part368

Page 41
Some examples of Other Properties
The following sections contain examples of how to use some of the properties listed above.
Hyperlinks
Hyperlinks are a type of formula as shown in the following example:
Images 
Images can be inserted using the insert_bitmap method of the Sheet class:
NB: Images are not displayed by OpenOffice.org
© Simplistix Ltd 2009  
from xlwt import Workbook,easyxf,Formula
style = easyxf('font: underline single')
book = Workbook()
sheet = book.add_sheet('Hyperlinks')
sheet.write(
0, 0,
Formula('HYPERLINK("http://www.python.org";"Python")'),
style)
link = 'HYPERLINK("mailto:python-
excel@googlegroups.com";"help")'
sheet.write(
1,0,
Formula(link),
style)
book.save("hyperlinks.xls")
hyperlinks.py
from xlwt import Workbook
w = Workbook()
ws = w.add_sheet('Image')
ws.insert_bitmap('python.bmp', 0, 0)
w.save('images.xls')
images.py
Adding page numbers to pdf - insert pages into PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide C# Users to Insert (Empty) PDF Page or Pages from a Supported File Format
add page number to pdf file; adding pages to a pdf document
Adding page numbers to pdf - VB.NET PDF Page Insert Library: insert pages into PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use VB.NET APIs to Add a New Blank Page to PDF Document
add a page to a pdf; add pages to pdf document
Page 42
Merged cells
Merged groups of cells can be inserted using the write_merge method of the Sheet 
class:
Borders
Writing a single cell with borders is simple enough, however applying a border to a group 
of cells is painful as shown in this example:
NB: Extra care needs to be taken if you're updating an existing Excel file!
© Simplistix Ltd 2009  
from xlwt import Workbook,easyxf
style = easyxf(
'pattern: pattern solid, fore_colour red;'
'align: vertical center, horizontal center;'
)
w = Workbook()
ws = w.add_sheet('Merged')
ws.write_merge(1,5,1,5,'Merged',style)
w.save('merged.xls')
merged.py
from xlwt import Workbook,easyxf
tl = easyxf('border: left thick, top thick')
t = easyxf('border: top thick')
tr = easyxf('border: right thick, top thick')
r = easyxf('border: right thick')
br = easyxf('border: right thick, bottom thick')
b = easyxf('border: bottom thick')
bl = easyxf('border: left thick, bottom thick')
l = easyxf('border: left thick')
w = Workbook()
ws = w.add_sheet('Border')
ws.write(1,1,style=tl)
ws.write(1,2,style=t)
ws.write(1,3,style=tr)
ws.write(2,3,style=r)
ws.write(3,3,style=br)
ws.write(3,2,style=b)
ws.write(3,1,style=bl)
ws.write(2,1,style=l)
w.save('borders.xls')
borders.py
C# Create PDF Library SDK to convert PDF from other file formats
PDF document file but also offer them the ability to count the page numbers of generated Besides, using this PDF document metadata adding control, you
add a page to pdf file; add a blank page to a pdf
C# Word - Word Create or Build in C#.NET
but also offer them the ability to count the page numbers of generated Besides, using this Word document adding control, you can add some Create Word From PDF.
adding a page to a pdf file; add or remove pages from pdf
Page 43
Split and Freeze panes
It is fairly straight forward to create frozen panes using xlwt.
The location of the split is specified using the integer vert_split_pos and 
horz_split_pos properties of the Sheet class.
The first visible cells are specified using the integer vert_split_first_visible and 
horz_split_first_visible properties of the Sheet class.
The following example shows them all in action:
Split panes are a less frequently used feature and their support is less complete in xlwt.
The procedure for creating split panes is exactly the same as for frozen panes except that 
the panes_frozen attribute of the Worksheet should be set to False instead of True.
However, if you really need split panes, you're advised to see professional help before 
proceeding!
© Simplistix Ltd 2009  
from xlwt import Workbook
from xlwt.Utils import rowcol_to_cell
w = Workbook()
sheet = w.add_sheet('Freeze')
sheet.panes_frozen = True
sheet.remove_splits = True
sheet.vert_split_pos = 2
sheet.horz_split_pos = 10
sheet.vert_split_first_visible = 5
sheet.horz_split_first_visible = 40
for col in range(20):
for row in range(80):
sheet.write(row,col,rowcol_to_cell(row,col))
w.save('panes.xls')
panes.py
Page 44
Outlines 
These are a little known and little used feature of the Excel file format that can be very 
useful when dealing with categorised data. 
Their use is best shown by example:
© Simplistix Ltd 2009  
from xlwt import Workbook
data = [
['','','2008','','2009'],
['','','Jan','Feb','Jan','Feb'],
['Company X'],
['','Division A'],
['','',100,200,300,400],
['','Division B'],
['','',100,99,98,50],
['Company Y'],
['','Division A'],
['','',100,100,100,100],
['','Division B'],
['','',100,101,102,103],
]
w = Workbook()
ws = w.add_sheet('Outlines')
for i,row in enumerate(data):
for j,cell in enumerate(row):
ws.write(i,j,cell)
ws.row(2).level = 1
ws.row(3).level = 2
ws.row(4).level = 3
ws.row(5).level = 2
ws.row(6).level = 3
ws.row(7).level = 1
ws.row(8).level = 2
ws.row(9).level = 3
ws.row(10).level = 2
ws.row(11).level = 3
ws.col(2).level = 1
ws.col(3).level = 2
ws.col(4).level = 1
ws.col(5).level = 2
w.save('outlines.xls')
outlines.py
Page 45
Zoom magnification and Page Break Preview
The zoom percentage used when viewing a sheet in normal mode can be controlled by 
setting the normal_magn attribute of a Sheet instance.
The zoom percentage used when viewing a sheet in page break preview mode can be 
controlled by setting the preview_magn attribute of a Sheet instance.
A Sheet can also be made to show a page break preview by setting the page_preview 
attribute of the Sheet instance to True.
Here's an example to show all three in action:
© Simplistix Ltd 2009  
from xlwt import Workbook
w = Workbook()
ws = w.add_sheet('Normal')
ws.write(0,0,'Some text')
ws.normal_magn = 75
ws = w.add_sheet('Page Break Preview')
ws.write(0,0,'Some text')
ws.preview_magn = 150
ws.page_preview = True
w.save('zoom.xls')
zoom.py
Page 46
Filtering Excel Files
Any examples shown below can be found in the xlutils directory of the course material.
Other utilities in xlutils
The xlutils package contains several utilities in addition to those for filtering. The 
following are often useful:
xlutils.styles
This module contains one class which, when instantiated with an xlrd.Workbook, will let 
you discover the style name and information from a given cell in that workbook as shown 
in the following example:
NB: For obvious reasons, open_workbook must be called with 
formatting_info=True in order to use xlutils.styles.
Full documentation and examples can be found in the styles.txt file in the docs folder 
of xlutils' source distribution.
© Simplistix Ltd 2009  
from xlrd import open_workbook
from xlutils.styles import Styles
book = open_workbook('source.xls',formatting_info=True)
styles = Styles(book)
sheet = book.sheet_by_index(0)
print styles[sheet.cell(1,1)].name
print styles[sheet.cell(1,2)].name
A1_style = styles[sheet.cell(0,0)]
A1_font = book.font_list[A1_style.xf.font_index]
print book.colour_map[A1_font.colour_index]
styles.py
Page 47
xlutils.display 
This module contains utility functions for easy and safe display of information returned by 
xlrd.
quoted_sheet_name is called with the name attribute of an xlrd.sheet.Sheet 
instance and will return an encoded string containing a quoted version of the sheet's name.
cell_display is called with an xlrd.sheet.Cell instance and returns an encoded 
string containing a sensible representation of the cells contents, even for Date and Error 
cells. If a date cell is to be displayed, cell_display must be called with the datemode 
attribute of the xlrd.Book from which the cell came.
The following examples show both functions in action:
Full documentation and examples can be found in the display.txt file in the docs folder of 
xlutils' source distribution.
© Simplistix Ltd 2009  
from xlrd import open_workbook
from xlutils.display import quoted_sheet_name
from xlutils.display import cell_display
wb = open_workbook('source.xls')
print quoted_sheet_name(wb.sheet_names()[0])
print repr(quoted_sheet_name(u'Price(\xa3)','utf-8'))
print quoted_sheet_name(u'My Sheet')
print quoted_sheet_name(u"John's Sheet")
sheet = wb.sheet_by_index(0)
print cell_display(sheet.cell(1,1))
print cell_display(sheet.cell(1,3),wb.datemode)
display.py
Page 48
xlutils.copy
This module contains one function that will take an xlrd.Book and returns an 
xlwt.Workbook populated with the data and formatting found in the xlrd.Book.
This is extremely useful for updating an existing spreadsheet as the following example 
shows:
It is important to note that some things won't be copied:
• Formulae
• Names
• anything ignored by xlrd
In addition to the modules described above, there are also xlutils.margins and 
xlutils.save, but these are only useful in certain situations. Refer to their 
documentation in the xlutils source distribution.
© Simplistix Ltd 2009  
from xlrd import open_workbook
from xlwt import easyxf
from xlutils.copy import copy
rb = open_workbook('source.xls',formatting_info=True)
rs = rb.sheet_by_index(0)
wb = copy(rb)
ws = wb.get_sheet(0)
plain = easyxf('')
for i,cell in enumerate(rs.col(2)):
if not i:
continue
ws.write(i,2,cell.value,plain)
for i,cell in enumerate(rs.col(4)):
if not i:
continue
ws.write(i,4,cell.value-1000)
wb.save('output.xls')
copy.py
Page 49
Structure of xlutils.filter
This framework is designed to filter and split Excel files using a series of modular readers, 
filters and writers as shown in the diagram below:
The flow of information between the components is by method calls on the next 
component in the chain. The possible method calls are listed in the table below, where 
rdbook is an xlrd.Book instance, rdsheet is an xlrd.sheet.Sheet instance, 
rdrowx, rdcolx, wtrowx and wtcolx and integer indexes specifying the cell to read 
from and write to, wtbook_name is a string specifying the name of the Excel file to write to 
and wtsheet_name is a unicode specifying the name of the sheet to write to:
start()
This method is called before processing of a batch of 
input. It can be called at any time. One common use 
is to reset all the filters in a chain in the event of an 
error
during the processing of an rdbook.
workbook(rdbook,wtbook_name) This method is called every time processing of a new 
workbook starts
sheet(rdsheet,wtsheet_name)
This method is called every time processing of a new 
sheet in the current workbook starts
set_rdsheet(rdsheet)
This method is called to indicate a change for the 
source of cells mid-way through writing a sheet.
row(rdrowx,wtrowx)
The row method is called every time processing of a 
new row in the current sheet starts.
cell(rdrowx,rdcolx,wtrowx,wtcolx) This is called for every cell in the sheet being 
processed. This is the most common method in which 
filtering and queuing of onward calls to the next 
component takes place.
finish
This method is called once processing of all 
workbooks has been completed.
© Simplistix Ltd 2009  
Filter 1
Filter 2
Reader
Writer
process
Page 50
Readers
A reader's job is to obtain one or more xlrd.Book objects and iterate over those objects 
issuing appropriate calls to the next component in the chain. The order of calling is 
expected to be as follows:
• start
◦ workbook, once for each xlrd.Book object obtained
▪ sheet, once for each sheet found in the current book
▪ set_rdsheet, whenever the sheet from which cells to be read needs to be 
changed. This method may not be called between calls to row and cell, and 
between multiple calls to cell. It may only be called once all cell calls for a 
row have been made.
• row, once for each row in the current sheet
◦ cell, once for each cell in the row
• finish, once all xlrd.Book objects have been processed
Also, for method calls made by a reader, the following should be true:
• wtbook_name should be the filename of the file the xlrd.Book object originated 
from.
• wtsheet_name should be rdbook.name
• wtrowx should be equal to rdrowx
• rdcolx should be equal to wtcolx
Because of these restrictions, an xlutils.filter.BaseReader class is provided that 
will normally only need to have one of two methods overridden to get any required 
functionality:
• get_filepaths – if implemented, this must return an iterable sequence of paths 
to excel files that can be opened with python's builtin file.
• get_workbooks – if implemented, this must return an sequence of 2-tuples. Each 
tuple must contain an xlrd.Book object followed by a string containing the 
filename of the file from which the xlrd.Book object was loaded.
© Simplistix Ltd 2009  
Documents you may be interested
Documents you may be interested