通过附加零更正 Excel 中的十六进制值
Correcting HEX values in Excel by appending additional zero
我确实找到了先前提出的多行连接问题的解决方案 ( HEX 代码在 Excel 中显示不正确。我发现有两种情况,我需要更正(在格式化 columns/sheet 后导入 .csv/.txt 不起作用)在 F 到 M 列中具有单个数字的值,然后再将它们连接起来。
Excel 将 "00"
更改为 "0"
以及 "02"
(或任何其他数字而不是 2)更改为 "2"
。这对我来说很重要,因为这些位将丢失并且所有数据都将变得无用。
所需输入:
A B C D E F G H .. M
.. 2E .... 0000000000000AA4..
...4A ... 0002478304..
当前输入:
A B C D E F G H .. M
.. 2E .... 0000000AA4..
...4A ... 0247834..
组织:
A B C D E F G H .. M
.. 2E .... 00 00 00 00 00 00 0A A4..
...4A ... 00 02 47 83 04..
到目前为止我使用的代码:
def concat_f_to_m():
for row_value in range(1, sheet.max_row+1):
values=[]
del values[:]
for row in sheet.iter_rows(min_col=6, max_col=14, min_row=row_value, max_row=row_value):
for cell in row:
if cell.value != None:
if cell.value == '0':
values.append("00")
print("zeros", values)
else:
values.append(str(cell.value))
print("non-zeros", values)
sheet[f'E{row_value}'].value= ''.join(values)
else:
del values[:]
break
在解决数字问题之前,我只处理了一个零而不是两个零的问题。不知何故,该程序甚至没有进入 if cell.value == '0'
部分。我不知道是什么问题。你能向我解释为什么我走错了路吗?谢谢!
您可以将 .zfill(x)
添加到字符串值中,使其长度至少为 x
。由于您需要 2 个字符,因此您将 .zfill(2)
.
def concat_f_to_m():
for row_value in range(1, sheet.max_row+1):
values=[]
del values[:]
for row in sheet.iter_rows(min_col=6, max_col=14, min_row=row_value, max_row=row_value):
for cell in row:
if cell.value != None:
values.append(str(cell.value).zfill(2))
sheet[f'E{row_value}'].value= ''.join(values)
else:
del values[:]
break
我确实找到了先前提出的多行连接问题的解决方案 ( HEX 代码在 Excel 中显示不正确。我发现有两种情况,我需要更正(在格式化 columns/sheet 后导入 .csv/.txt 不起作用)在 F 到 M 列中具有单个数字的值,然后再将它们连接起来。
Excel 将
"00"
更改为 "0"
以及 "02"
(或任何其他数字而不是 2)更改为 "2"
。这对我来说很重要,因为这些位将丢失并且所有数据都将变得无用。
所需输入:
A B C D E F G H .. M
.. 2E .... 0000000000000AA4..
...4A ... 0002478304..
当前输入:
A B C D E F G H .. M
.. 2E .... 0000000AA4..
...4A ... 0247834..
组织:
A B C D E F G H .. M
.. 2E .... 00 00 00 00 00 00 0A A4..
...4A ... 00 02 47 83 04..
到目前为止我使用的代码:
def concat_f_to_m():
for row_value in range(1, sheet.max_row+1):
values=[]
del values[:]
for row in sheet.iter_rows(min_col=6, max_col=14, min_row=row_value, max_row=row_value):
for cell in row:
if cell.value != None:
if cell.value == '0':
values.append("00")
print("zeros", values)
else:
values.append(str(cell.value))
print("non-zeros", values)
sheet[f'E{row_value}'].value= ''.join(values)
else:
del values[:]
break
在解决数字问题之前,我只处理了一个零而不是两个零的问题。不知何故,该程序甚至没有进入 if cell.value == '0'
部分。我不知道是什么问题。你能向我解释为什么我走错了路吗?谢谢!
您可以将 .zfill(x)
添加到字符串值中,使其长度至少为 x
。由于您需要 2 个字符,因此您将 .zfill(2)
.
def concat_f_to_m():
for row_value in range(1, sheet.max_row+1):
values=[]
del values[:]
for row in sheet.iter_rows(min_col=6, max_col=14, min_row=row_value, max_row=row_value):
for cell in row:
if cell.value != None:
values.append(str(cell.value).zfill(2))
sheet[f'E{row_value}'].value= ''.join(values)
else:
del values[:]
break