网站首页 > 博客文章 正文
在如何使用xlwt精确控制Excel表格列宽一文中,作者提到了xlwt的列宽像素计算公式:
def width_in_pixels(self):
# *** Approximation ****
return int(round(self.width * 0.0272 + 0.446, 0))
同时提出了一个精确计算列宽的新公式:
公式4:width=round(列宽字符数*256+182.8571,0)
新公式的精确性验证过程如下:
- 使用下面python代码生成test1.xls:
import xlwt
book = xlwt.Workbook(encoding='utf-8')
sheet=book.add_sheet('12')
k=0
for pixel in range(12, 1791):
if pixel % 250==0:
sheet=book.add_sheet(str(pixel))
k=0
chars=round((pixel-5)/7,2)
width=round(chars*256+182.8571)
sheet.col(k).width=width
sheet.write(0, k, width) #列宽值
sheet.write(1, k, sheet.col(k).width_in_pixels()) #近似像素
sheet.write(2, k, pixel) #期望像素
sheet.write(3, k, chars) #期望字符数
k+=1
#保存平时成绩表
book.save('test1.xls')
- 在Excel中打开test1.xls, 运行宏代码:
Sub ff()
r = 10
For j = 1 To 8
For i = 1 To 250
Sheet1.Cells(r, 30) = Sheets(j).Cells(1, i)
Sheet1.Cells(r, 31) = Sheets(j).Cells(2, i)
Sheet1.Cells(r, 32) = Sheets(j).Cells(3, i)
Sheet1.Cells(r, 33) = Sheets(j).Cells(4, i)
Sheet1.Cells(r, 34) = Sheets(j).Columns(i).Width * 4 / 3 ‘实际像素
Sheet1.Cells(r, 35) = Sheets(j).Columns(i).ColumnWidth '实际字符数
Sheet1.Cells(r, 36) = Sheets(j).Columns(i).Width ‘实际磅数
r = r + 1
Next
Next
End Sub
- 获得数据如下表所示。近似像素从每列的width_in_pixels方法获得,后面的实际像素、实际字符和实际磅数通过Excel VBA脚本获得。
width | 近似像素 | 期望像素 | 期望字符 | 实际像素 | 实际字符 | 实际磅数 |
439 | 12 | 12 | 1 | 12 | 1 | 9 |
475 | 13 | 13 | 1.14 | 13 | 1.14 | 9.75 |
513 | 14 | 14 | 1.29 | 14 | 1.29 | 10.5 |
549 | 15 | 15 | 1.43 | 15 | 1.43 | 11.25 |
585 | 16 | 16 | 1.57 | 16 | 1.57 | 12 |
621 | 17 | 17 | 1.71 | 17 | 1.71 | 12.75 |
659 | 18 | 18 | 1.86 | 18 | 1.86 | 13.5 |
695 | 19 | 19 | 2 | 19 | 2 | 14.25 |
731 | 20 | 20 | 2.14 | 20 | 2.14 | 15 |
769 | 21 | 21 | 2.29 | 21 | 2.29 | 15.75 |
805 | 22 | 22 | 2.43 | 22 | 2.43 | 16.5 |
841 | 23 | 23 | 2.57 | 23 | 2.57 | 17.25 |
877 | 24 | 24 | 2.71 | 24 | 2.71 | 18 |
915 | 25 | 25 | 2.86 | 25 | 2.86 | 18.75 |
951 | 26 | 26 | 3 | 26 | 3 | 19.5 |
987 | 27 | 27 | 3.14 | 27 | 3.14 | 20.25 |
1025 | 28 | 28 | 3.29 | 28 | 3.29 | 21 |
1061 | 29 | 29 | 3.43 | 29 | 3.43 | 21.75 |
1097 | 30 | 30 | 3.57 | 30 | 3.57 | 22.5 |
1133 | 31 | 31 | 3.71 | 31 | 3.71 | 23.25 |
1171 | 32 | 32 | 3.86 | 32 | 3.86 | 24 |
1207 | 33 | 33 | 4 | 33 | 4 | 24.75 |
1243 | 34 | 34 | 4.14 | 34 | 4.14 | 25.5 |
1281 | 35 | 35 | 4.29 | 35 | 4.29 | 26.25 |
1317 | 36 | 36 | 4.43 | 36 | 4.43 | 27 |
1353 | 37 | 37 | 4.57 | 37 | 4.57 | 27.75 |
1389 | 38 | 38 | 4.71 | 38 | 4.71 | 28.5 |
1427 | 39 | 39 | 4.86 | 39 | 4.86 | 29.25 |
1463 | 40 | 40 | 5 | 40 | 5 | 30 |
1499 | 41 | 41 | 5.14 | 41 | 5.14 | 30.75 |
1537 | 42 | 42 | 5.29 | 42 | 5.29 | 31.5 |
1573 | 43 | 43 | 5.43 | 43 | 5.43 | 32.25 |
1609 | 44 | 44 | 5.57 | 44 | 5.57 | 33 |
1645 | 45 | 45 | 5.71 | 45 | 5.71 | 33.75 |
1683 | 46 | 46 | 5.86 | 46 | 5.86 | 34.5 |
1719 | 47 | 47 | 6 | 47 | 6 | 35.25 |
1755 | 48 | 48 | 6.14 | 48 | 6.14 | 36 |
1793 | 49 | 49 | 6.29 | 49 | 6.29 | 36.75 |
1829 | 50 | 50 | 6.43 | 50 | 6.43 | 37.5 |
1865 | 51 | 51 | 6.57 | 51 | 6.57 | 38.25 |
1901 | 52 | 52 | 6.71 | 52 | 6.71 | 39 |
1939 | 53 | 53 | 6.86 | 53 | 6.86 | 39.75 |
1975 | 54 | 54 | 7 | 54 | 7 | 40.5 |
2011 | 55 | 55 | 7.14 | 55 | 7.14 | 41.25 |
2049 | 56 | 56 | 7.29 | 56 | 7.29 | 42 |
2085 | 57 | 57 | 7.43 | 57 | 7.43 | 42.75 |
2121 | 58 | 58 | 7.57 | 58 | 7.57 | 43.5 |
2157 | 59 | 59 | 7.71 | 59 | 7.71 | 44.25 |
2195 | 60 | 60 | 7.86 | 60 | 7.86 | 45 |
2231 | 61 | 61 | 8 | 61 | 8 | 45.75 |
2267 | 62 | 62 | 8.14 | 62 | 8.14 | 46.5 |
2305 | 63 | 63 | 8.29 | 63 | 8.29 | 47.25 |
2341 | 64 | 64 | 8.43 | 64 | 8.43 | 48 |
2377 | 65 | 65 | 8.57 | 65 | 8.57 | 48.75 |
2413 | 66 | 66 | 8.71 | 66 | 8.71 | 49.5 |
2451 | 67 | 67 | 8.86 | 67 | 8.86 | 50.25 |
2487 | 68 | 68 | 9 | 68 | 9 | 51 |
2523 | 69 | 69 | 9.14 | 69 | 9.14 | 51.75 |
2561 | 70 | 70 | 9.29 | 70 | 9.29 | 52.5 |
2597 | 71 | 71 | 9.43 | 71 | 9.43 | 53.25 |
2633 | 72 | 72 | 9.57 | 72 | 9.57 | 54 |
2669 | 73 | 73 | 9.71 | 73 | 9.71 | 54.75 |
2707 | 74 | 74 | 9.86 | 74 | 9.86 | 55.5 |
2743 | 75 | 75 | 10 | 75 | 10 | 56.25 |
2779 | 76 | 76 | 10.14 | 76 | 10.14 | 57 |
2817 | 77 | 77 | 10.29 | 77 | 10.29 | 57.75 |
2853 | 78 | 78 | 10.43 | 78 | 10.43 | 58.5 |
2889 | 79 | 79 | 10.57 | 79 | 10.57 | 59.25 |
2925 | 80 | 80 | 10.71 | 80 | 10.71 | 60 |
2963 | 81 | 81 | 10.86 | 81 | 10.86 | 60.75 |
2999 | 82 | 82 | 11 | 82 | 11 | 61.5 |
3035 | 83 | 83 | 11.14 | 83 | 11.14 | 62.25 |
3073 | 84 | 84 | 11.29 | 84 | 11.29 | 63 |
3109 | 85 | 85 | 11.43 | 85 | 11.43 | 63.75 |
3145 | 86 | 86 | 11.57 | 86 | 11.57 | 64.5 |
3181 | 87 | 87 | 11.71 | 87 | 11.71 | 65.25 |
3219 | 88 | 88 | 11.86 | 88 | 11.86 | 66 |
3255 | 89 | 89 | 12 | 89 | 12 | 66.75 |
3291 | 90 | 90 | 12.14 | 90 | 12.14 | 67.5 |
3329 | 91 | 91 | 12.29 | 91 | 12.29 | 68.25 |
3365 | 92 | 92 | 12.43 | 92 | 12.43 | 69 |
3401 | 93 | 93 | 12.57 | 93 | 12.57 | 69.75 |
3437 | 94 | 94 | 12.71 | 94 | 12.71 | 70.5 |
3475 | 95 | 95 | 12.86 | 95 | 12.86 | 71.25 |
3511 | 96 | 96 | 13 | 96 | 13 | 72 |
3547 | 97 | 97 | 13.14 | 97 | 13.14 | 72.75 |
3585 | 98 | 98 | 13.29 | 98 | 13.29 | 73.5 |
3621 | 99 | 99 | 13.43 | 99 | 13.43 | 74.25 |
3657 | 100 | 100 | 13.57 | 100 | 13.57 | 75 |
3693 | 101 | 101 | 13.71 | 101 | 13.71 | 75.75 |
3731 | 102 | 102 | 13.86 | 102 | 13.86 | 76.5 |
3767 | 103 | 103 | 14 | 103 | 14 | 77.25 |
3803 | 104 | 104 | 14.14 | 104 | 14.14 | 78 |
3841 | 105 | 105 | 14.29 | 105 | 14.29 | 78.75 |
3877 | 106 | 106 | 14.43 | 106 | 14.43 | 79.5 |
3913 | 107 | 107 | 14.57 | 107 | 14.57 | 80.25 |
3949 | 108 | 108 | 14.71 | 108 | 14.71 | 81 |
3987 | 109 | 109 | 14.86 | 109 | 14.86 | 81.75 |
4023 | 110 | 110 | 15 | 110 | 15 | 82.5 |
4059 | 111 | 111 | 15.14 | 111 | 15.14 | 83.25 |
4097 | 112 | 112 | 15.29 | 112 | 15.29 | 84 |
4133 | 113 | 113 | 15.43 | 113 | 15.43 | 84.75 |
4169 | 114 | 114 | 15.57 | 114 | 15.57 | 85.5 |
4205 | 115 | 115 | 15.71 | 115 | 15.71 | 86.25 |
4243 | 116 | 116 | 15.86 | 116 | 15.86 | 87 |
4279 | 117 | 117 | 16 | 117 | 16 | 87.75 |
4315 | 118 | 118 | 16.14 | 118 | 16.14 | 88.5 |
4353 | 119 | 119 | 16.29 | 119 | 16.29 | 89.25 |
4389 | 120 | 120 | 16.43 | 120 | 16.43 | 90 |
4425 | 121 | 121 | 16.57 | 121 | 16.57 | 90.75 |
4461 | 122 | 122 | 16.71 | 122 | 16.71 | 91.5 |
4499 | 123 | 123 | 16.86 | 123 | 16.86 | 92.25 |
4535 | 124 | 124 | 17 | 124 | 17 | 93 |
4571 | 125 | 125 | 17.14 | 125 | 17.14 | 93.75 |
4609 | 126 | 126 | 17.29 | 126 | 17.29 | 94.5 |
4645 | 127 | 127 | 17.43 | 127 | 17.43 | 95.25 |
4681 | 128 | 128 | 17.57 | 128 | 17.57 | 96 |
4717 | 129 | 129 | 17.71 | 129 | 17.71 | 96.75 |
4755 | 130 | 130 | 17.86 | 130 | 17.86 | 97.5 |
4791 | 131 | 131 | 18 | 131 | 18 | 98.25 |
4827 | 132 | 132 | 18.14 | 132 | 18.14 | 99 |
4865 | 133 | 133 | 18.29 | 133 | 18.29 | 99.75 |
4901 | 134 | 134 | 18.43 | 134 | 18.43 | 100.5 |
4937 | 135 | 135 | 18.57 | 135 | 18.57 | 101.25 |
4973 | 136 | 136 | 18.71 | 136 | 18.71 | 102 |
5011 | 137 | 137 | 18.86 | 137 | 18.86 | 102.75 |
5047 | 138 | 138 | 19 | 138 | 19 | 103.5 |
5083 | 139 | 139 | 19.14 | 139 | 19.14 | 104.25 |
5121 | 140 | 140 | 19.29 | 140 | 19.29 | 105 |
5157 | 141 | 141 | 19.43 | 141 | 19.43 | 105.75 |
5193 | 142 | 142 | 19.57 | 142 | 19.57 | 106.5 |
5229 | 143 | 143 | 19.71 | 143 | 19.71 | 107.25 |
5267 | 144 | 144 | 19.86 | 144 | 19.86 | 108 |
5303 | 145 | 145 | 20 | 145 | 20 | 108.75 |
5339 | 146 | 146 | 20.14 | 146 | 20.14 | 109.5 |
5377 | 147 | 147 | 20.29 | 147 | 20.29 | 110.25 |
5413 | 148 | 148 | 20.43 | 148 | 20.43 | 111 |
5449 | 149 | 149 | 20.57 | 149 | 20.57 | 111.75 |
5485 | 150 | 150 | 20.71 | 150 | 20.71 | 112.5 |
5523 | 151 | 151 | 20.86 | 151 | 20.86 | 113.25 |
5559 | 152 | 152 | 21 | 152 | 21 | 114 |
5595 | 153 | 153 | 21.14 | 153 | 21.14 | 114.75 |
5633 | 154 | 154 | 21.29 | 154 | 21.29 | 115.5 |
5669 | 155 | 155 | 21.43 | 155 | 21.43 | 116.25 |
5705 | 156 | 156 | 21.57 | 156 | 21.57 | 117 |
5741 | 157 | 157 | 21.71 | 157 | 21.71 | 117.75 |
5779 | 158 | 158 | 21.86 | 158 | 21.86 | 118.5 |
5815 | 159 | 159 | 22 | 159 | 22 | 119.25 |
5851 | 160 | 160 | 22.14 | 160 | 22.14 | 120 |
5889 | 161 | 161 | 22.29 | 161 | 22.29 | 120.75 |
5925 | 162 | 162 | 22.43 | 162 | 22.43 | 121.5 |
5961 | 163 | 163 | 22.57 | 163 | 22.57 | 122.25 |
5997 | 164 | 164 | 22.71 | 164 | 22.71 | 123 |
6035 | 165 | 165 | 22.86 | 165 | 22.86 | 123.75 |
6071 | 166 | 166 | 23 | 166 | 23 | 124.5 |
6107 | 167 | 167 | 23.14 | 167 | 23.14 | 125.25 |
6145 | 168 | 168 | 23.29 | 168 | 23.29 | 126 |
6181 | 169 | 169 | 23.43 | 169 | 23.43 | 126.75 |
6217 | 170 | 170 | 23.57 | 170 | 23.57 | 127.5 |
6253 | 171 | 171 | 23.71 | 171 | 23.71 | 128.25 |
6291 | 172 | 172 | 23.86 | 172 | 23.86 | 129 |
6327 | 173 | 173 | 24 | 173 | 24 | 129.75 |
6363 | 174 | 174 | 24.14 | 174 | 24.14 | 130.5 |
6401 | 175 | 175 | 24.29 | 175 | 24.29 | 131.25 |
6437 | 176 | 176 | 24.43 | 176 | 24.43 | 132 |
6473 | 177 | 177 | 24.57 | 177 | 24.57 | 132.75 |
6509 | 177 | 178 | 24.71 | 178 | 24.71 | 133.5 |
6547 | 179 | 179 | 24.86 | 179 | 24.86 | 134.25 |
6583 | 180 | 180 | 25 | 180 | 25 | 135 |
6619 | 180 | 181 | 25.14 | 181 | 25.14 | 135.75 |
6657 | 182 | 182 | 25.29 | 182 | 25.29 | 136.5 |
6693 | 182 | 183 | 25.43 | 183 | 25.43 | 137.25 |
6729 | 183 | 184 | 25.57 | 184 | 25.57 | 138 |
6765 | 184 | 185 | 25.71 | 185 | 25.71 | 138.75 |
6803 | 185 | 186 | 25.86 | 186 | 25.86 | 139.5 |
6839 | 186 | 187 | 26 | 187 | 26 | 140.25 |
6875 | 187 | 188 | 26.14 | 188 | 26.14 | 141 |
6913 | 188 | 189 | 26.29 | 189 | 26.29 | 141.75 |
6949 | 189 | 190 | 26.43 | 190 | 26.43 | 142.5 |
6985 | 190 | 191 | 26.57 | 191 | 26.57 | 143.25 |
7021 | 191 | 192 | 26.71 | 192 | 26.71 | 144 |
7059 | 192 | 193 | 26.86 | 193 | 26.86 | 144.75 |
7095 | 193 | 194 | 27 | 194 | 27 | 145.5 |
7131 | 194 | 195 | 27.14 | 195 | 27.14 | 146.25 |
7169 | 195 | 196 | 27.29 | 196 | 27.29 | 147 |
7205 | 196 | 197 | 27.43 | 197 | 27.43 | 147.75 |
7241 | 197 | 198 | 27.57 | 198 | 27.57 | 148.5 |
7277 | 198 | 199 | 27.71 | 199 | 27.71 | 149.25 |
7315 | 199 | 200 | 27.86 | 200 | 27.86 | 150 |
7351 | 200 | 201 | 28 | 201 | 28 | 150.75 |
7387 | 201 | 202 | 28.14 | 202 | 28.14 | 151.5 |
7425 | 202 | 203 | 28.29 | 203 | 28.29 | 152.25 |
7461 | 203 | 204 | 28.43 | 204 | 28.43 | 153 |
7497 | 204 | 205 | 28.57 | 205 | 28.57 | 153.75 |
7533 | 205 | 206 | 28.71 | 206 | 28.71 | 154.5 |
7571 | 206 | 207 | 28.86 | 207 | 28.86 | 155.25 |
7607 | 207 | 208 | 29 | 208 | 29 | 156 |
7643 | 208 | 209 | 29.14 | 209 | 29.14 | 156.75 |
7681 | 209 | 210 | 29.29 | 210 | 29.29 | 157.5 |
7717 | 210 | 211 | 29.43 | 211 | 29.43 | 158.25 |
7753 | 211 | 212 | 29.57 | 212 | 29.57 | 159 |
7789 | 212 | 213 | 29.71 | 213 | 29.71 | 159.75 |
7827 | 213 | 214 | 29.86 | 214 | 29.86 | 160.5 |
7863 | 214 | 215 | 30 | 215 | 30 | 161.25 |
根据上表得出两点结论:
- xlwt的列宽像素计算公式不准确,列宽像素只是一个近似值,和实际像素存在一定误差,最大误差达到9个(表中没有显示)。
- 使用新公式width=round(列宽字符数*256+182.8571,0) ,期望列宽字符数和实际列宽字符数完全一致,说明新公式能够方便程序员精确设置列宽值,把列宽精度控制到像素级别。
猜你喜欢
- 2024-10-24 python处理excel文件03:xlwt模块写入excel文件
- 2024-10-24 经验 | Python 读写 Excel 文件第三方库汇总
- 2024-10-24 python实现爬取豆瓣电影Top250(python爬取豆瓣电影的流程)
- 2024-10-24 Python如何操作Excel,xlrd和xlwt类库的使用
- 2024-10-24 如何用Python读写Excel文件?最便捷的3种方式
- 2024-10-24 安全服务日常工作之大量端口状态扫描
- 2024-10-24 Python操作Excel库xlrd与xlwt常用操作详解
- 2024-10-24 Python读写Excel表格,就是这么简单粗暴又好用
- 2024-10-24 Python学习之爬取网页信息(python爬取网页数据步骤)
- 2024-10-24 pandas + xlwt制作格式化报表遇到的两个问题
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)