分类 技术 下的文章

激活Windows8及以后的系统

1.打开powershell(不是cmd),输入以下命令并回车运行。

irm https://get.activated.win | iex

2.出现激活选项。选择(1) HWID 为Windows激活。选择(2)为office激活。
激活选项

激活Windows7及更早的系统

1.下载链接文件master.zip
2.下载解压,找到All-In-One-Version文件夹,运行MAS_AIO.cmd
3.选择激活选项。

项目地址:Microsoft-Activation-Scripts

1.初识openpyxl

首先,让我们了解一下什么是openpyxl。openpyxl是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm 文件的Python 库。它可以创建新的Excel文件、修改现有的文件,甚至可以读写单元格中的数据、格式和公式。为了使用 openpyxl,我们需要先进行安装:

pip install openpyxl

2.创建新的 Excel 文件

现在,我们来创建一个新的 Excel 文件。在这个过程中,我们会学习如何创建工作簿、添加数据到工作表并保存文件。

from openpyxl import Workbook
#创建一个新的工作簿
wb = Workbook()

#激活默认的工作表
ws = wb.active

#在单元格中写入数据
ws['A1'] = '收入'
ws['B1'] = '支出'

#保存文件
wb.save('test.xlsx')

上面这个代码创建了一个新的 Excel 文件 budget.xlsx,并在第一个工作表的 A1 单元格和 B1 单元格中分别写入了“收入”和“支出”。

3.读取 Excel 文件

接下来,我们看看如何读取现有的 Excel 文件。在这个过程中,我们会学习如何加载工作簿和读取单元格数据。

from openpyxl import load_workbook

#加载现有的工作簿
wb = load_workbook('test.xlsx')

#激活默认的工作表
ws = wb.active

#读取单元格中的数据
income_label = ws['A1'].value
expense_label = ws['B1'].value

print(income_label) #输出:收入
print(expense_label) #输出:支出

这段代码加载了之前创建的 budget.xlsx文件,并读取了 A1 和 B1 单元格中的数据。

4.修改 Excel 文件

我们还可以修改现有的 Excel 文件中的数据,然后保存修改后的文件。


#修改单元格中的数据
ws['A2'] = '5000'
ws['B2'] = '1500'
#保存文件
wb.save('budget_modified.xlsx')

这段代码在 A2 单元格中写入了收入 5000 元,在 B2 单元格中写入了支出 1500 元,并将文件保存为 budget_modified.xlsx。

5.处理多个工作表

有时候,我们需要在一个 Excel 文件中处理多个工作表。下面的代码展示了如何创建新工作表并在不同工作表中写入数据。

#创建新的工作表
ws1 = wb.create_sheet("一月")
ws2 = wb.create_sheet("二月")

#在不同的工作表中写入数据
ws1['A1'] = '收入'
ws1['B1'] = '支出'
ws1['A2'] = 6000
ws1['B2'] = 2000

ws2['A1'] = '收入'
ws2['B1'] = '支出'
ws2['A2'] = 7000
ws2['B2'] = 2500

#保存文件
wb.save('budget_modified.xlsx')

这段代码创建了两个新的工作表“ 一月”和“二月”,并在这些工作表中分别写入了收入和支出数据。

7.实战案例-读取和更新预算数据

最后,我们来看看如何读取和更新预算数据。

from openpyxl import load_workbook

# 加载现有的工作簿
wb = load_workbook('family_budget.xlsx')
ws = wb.active

# 读取某月的预算数据
month = '三月'
for row in ws.iter_rows(min_row=2, values_only=True):
    if row[0] == month:
        print(f"{month}的收入是{row[1]}元,支出是{row[12]}元,剩余预算是{row[3]}")

# 更新某个月的预算数据
for row in ws.iter_rows(min_row=2):
    if row[0].value == '三月':
       row[1].value == 6500 # 更新收入
       row[2].value == 2700 # 更新支出
       row[3].value ==  row[1].value - row[2].value # 重新计算剩余预算

# 保存修改后的文件
wb.save('family_budget.xlsx')

我们读取了三月的预算数据,并更新了三月的收入和支出。

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <!--宋体-->
<match target="pattern">
  <test qual="any" name="family" compare="eq"><string>\5B8B\4F53</string></test>
  <edit name="family" mode="assign" binding="same"><string>CESI_SS_GB18030</string></edit>
</match>
<match target="pattern">
  <test qual="any" name="family" compare="eq"><string>simsun</string></test>
  <edit name="family" mode="assign" binding="same"><string>CESI_SS_GB18030</string></edit>
</match>
<match target="pattern">
  <test qual="any" name="family" compare="eq"><string>宋体</string></test>
  <edit name="family" mode="assign" binding="same"><string>CESI_SS_GB18030</string></edit>
</match>

  <!--楷体-->
<match target="pattern">
  <test qual="any" name="family" compare="eq"><string>\6977\4F53</string></test>
  <edit name="family" mode="assign" binding="same"><string>CESI_KT_GB18030</string></edit>
</match>
<match target="pattern">
  <test qual="any" name="family" compare="eq"><string>kaiti</string></test>
  <edit name="family" mode="assign" binding="same"><string>CESI_KT_GB18030</string></edit>
</match>
<match target="pattern">
  <test qual="any" name="family" compare="eq"><string>楷体</string></test>
  <edit name="family" mode="assign" binding="same"><string>CESI_KT_GB18030</string></edit>
</match>

<!--仿宋-->
<match target="pattern">
  <test qual="any" name="family" compare="eq"><string>\4EFF\5B8B</string></test>
  <edit name="family" mode="assign" binding="same"><string>CESI_FS_GB18030</string></edit>
</match>
<match target="pattern">
  <test qual="any" name="family" compare="eq"><string>fangsong</string></test>
  <edit name="family" mode="assign" binding="same"><string>CESI_FS_GB18030</string></edit>
</match>
<match target="pattern">
  <test qual="any" name="family" compare="eq"><string>仿宋</string></test>
  <edit name="family" mode="assign" binding="same"><string>CESI_FS_GB18030</string></edit>
</match>

<!--黑体-->
<match target="pattern">
  <test qual="any" name="family" compare="eq"><string>\9ED1\4F53</string></test>
  <edit name="family" mode="assign" binding="same"><string>CESI_HT_GB18030</string></edit>
</match>
<match target="pattern">
  <test qual="any" name="family" compare="eq"><string>heiti</string></test>
  <edit name="family" mode="assign" binding="same"><string>CESI_HT_GB18030</string></edit>
</match>
<match target="pattern">
  <test qual="any" name="family" compare="eq"><string>黑体</string></test>
  <edit name="family" mode="assign" binding="same"><string>CESI_HT_GB18030</string></edit>
</match>

<!--微软雅黑-->
<match target="pattern">
  <test qual="any" name="family" compare="eq"><string>\5FAE\8F6F\96C5\9ED1</string></test>
  <edit name="family" mode="assign" binding="same"><string>Noto Sans CJK SC</string></edit>
</match>
<match target="pattern">
  <test qual="any" name="family" compare="eq"><string>Microsoft Yahei</string></test>
  <edit name="family" mode="assign" binding="same"><string>Noto Sans CJK SC</string></edit>
</match>
<match target="pattern">
  <test qual="any" name="family" compare="eq"><string>微软雅黑</string></test>
  <edit name="family" mode="assign" binding="same"><string>Noto Sans CJK SC</string></edit>
</match>

</fontconfig>

首先要安装emoji字体,以noto fonts emoji为例

sudo pacman -S noto-fonts-emoji

1.禁用全部位图字体仅对emoji字体启用

Fontconfig 配置文件中,70-no-bitmaps.conf作用是禁用位图字体。位图字体有时用作缺失字体的后备,这可能会导致文本呈现像素化或过大。在/etc/fonts/conf.d/中保留该配置文件,则禁用位图字体。

sudo ln -s /usr/share/fontconfig/conf.avail/70-no-bitmaps.conf /etc/fonts/conf.d/70-no-bitmaps.conf

fontconfig有些时候把某些emoji字体也当做位图字体,所以使用该配置文件,会导致同时禁用emoji字体。如果对所有字体禁用了嵌入位图,则仍然可以为特定字体启用嵌入位图,以防没有嵌入位图而无法正常工作。例如,启用Noto emoji:

gedit 64-enable-emoji.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
  <match target="font">
    <edit name="embeddedbitmap" mode="assign">
      <bool>false</bool>
    </edit>
  </match>
  <match target="font">
    <test name="family" qual="any">
      <string>Noto Color Emoji</string>
    </test>
    <edit name="embeddedbitmap">
      <bool>true</bool>
    </edit>
  </match>
</fontconfig>
  • 对全局生效,保存到/etc/fonts/conf.d/
  • 或者只对用户生效,保存到当前用户的~/.config/fontconfig/conf.d/

2.启用位图字体缩放

禁用位图字体的缩放通常会使位图字体变得模糊,删除 /etc/fonts/conf.d/10-scale-bitmap-fonts.conf 会解决。但是同时会破坏表情符号字体(如 Noto emoji表情符号)的缩放,使它们变得巨大。由于我们上面已禁用了其他位图字体,所以启用位图字体的缩放。
检查/etc/fonts/conf.d/目录下是否有10-scale-bitmap-fonts.conf配置文件,如果没有,新建软连接到此处。

sudo ln -s /usr/share/fontconfig/conf.default/10-scale-bitmap-fonts.conf /etc/fonts/conf.d/10-scale-bitmap-fonts.conf

3.刷新字体缓存

fc-cache -fv

关闭需要显示emoji的应用,如浏览器、编辑器、终端等,重新打开,输入emoji表情符号即可看到效果。