2023年8月31日 星期四

利用python將docx中將一些文字修改成另一文字

 import os

from docx import Document

from docx.shared import Pt

from docx.oxml.ns import qn


def replace_text_in_docx(file_path, old_text, new_text):

    doc = Document(file_path)

    font_name = "標楷體"

    font_size = Pt(14)

    

    for para in doc.paragraphs:

        if old_text in para.text:

            para.text = para.text.replace(old_text, new_text)

            for run in para.runs:

                run.font.name = font_name

                run.font.size = font_size

                run._element.rPr.rFonts.set(qn('w:eastAsia'), font_name)

    

    for table in doc.tables:

        for row in table.rows:

            for cell in row.cells:

                if old_text in cell.text:

                    cell.text = cell.text.replace(old_text, new_text)

                    for para in cell.paragraphs:

                        for run in para.runs:

                            run.font.name = font_name

                            run.font.size = font_size

                            run._element.rPr.rFonts.set(qn('w:eastAsia'), font_name)

    

    doc.save(file_path)


folder_path = r'G:\test'  # 修改為你的資料夾路徑

replacements = [

    ('科室主管', '部門主管'),

    ('機關首長', '單位(副)主管')

]


for root, dirs, files in os.walk(folder_path):

    for file in files:

        if file.lower().endswith('.docx'):

            file_path = os.path.join(root, file)

            for old_text, new_text in replacements:

                replace_text_in_docx(file_path, old_text, new_text)

            print(f"Modified {file_path}")


print("Replacement completed.")

--------------------------------------------------------------------------
需使用python-docx模組來讀取和修改.docx檔案的內容,可以使用pip install python-docx來安裝

2023年8月25日 星期五

windows 11 hyper-v nested(巢狀虛擬化)

 

  1. 1.Open Start.

  2. 2.Search for PowerShell, right-click the top result, and select the Run as administrator option.

  3. 3.Type the following command on PowerShell to enable Hyper-V on Windows 11 and press Enter:

    DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
  4. 4.Type “Y” to restart your computer.


Windows Hper-v install ESXi, stop on "Relocating modules and starting up the kernel"

開機時在畫面倒數時按住SHIFT+O,鍵入 ignoreHeadless = TRUE 再按ENTER即可

找出在 Windows 系統上使用 6680 端口的軟體

 要找出在 Windows 系統上使用 6680 端口的軟體,你可以使用一些網絡工具來進行端口掃描和識別。一個常用的工具是 "netstat" 命令列工具。以下是在 Windows 上使用 netstat 來查找使用 6680 端口的程式的步驟:


1. 開啟命令提示字元(CMD):

   - 按下 `Win + R` 鍵,輸入 "cmd",然後按下 Enter 鍵,開啟命令提示字元視窗。


2. 輸入以下命令並按 Enter:


   netstat -ano | findstr :6680



   這個命令將列出所有正在使用 6680 端口的連線,並顯示與每個連線相關的進程 ID(PID)。


3. 尋找進程 ID(PID):

   在命令輸出中,你會看到一列進程 ID(PID)。要尋找與特定 PID 相關聯的程式,可以打開工作管理員:


   - 按下 `Ctrl + Shift + Esc` 組合鍵,打開工作管理員。

   - 在工作管理員的選單中,選擇 "視圖"(View)> "選取欄位"(Select Columns)。

   - 在彈出的視窗中,選中 "進程 ID"(Process ID)複選框,然後點擊 "確定"。

   - 現在你應該能夠在工作管理員中看到 "PID" 欄位。


4. 在工作管理員中尋找進程:

   找到具有與 netstat 輸出中的 PID 相匹配的進程。這將幫助你確定哪個程式在使用 6680 端口。


請注意,有時候某些程式可能使用特定端口進行區域網通訊或臨時連線,所以並不是所有的進程都是潛在的安全風險。確保你知道哪些程式在使用特定端口之前,再進行任何進一步的操作。如果你發現不認識的程式在使用該端口,可以進行更詳細的調查以確定其來源和用途。

2023年8月17日 星期四

在 LibreOffice Writer 中製作一個按鈕,使其在按下後會在滑鼠位置顯示 "Hello 您好"

 在 LibreOffice Writer 中製作一個按鈕,使其在按下後會在滑鼠位置顯示 "Hello 您好",可以按照以下步驟進行:


1. **建立按鈕**:

   - 開啟 LibreOffice Writer。

   - 在選單列中,選擇 `檢視` > `表單控制項` > `推動按鈕(Button)`,然後在你想要按鈕出現的位置,畫一個按鈕。


2. **編輯按鈕屬性**:

   - 右鍵點擊繪製的按鈕,選擇 "控制項屬性(Control)" > ,以打開 "按鈕屬性(Button Properties)" 對話框。

   - 在 "一般(General)" 選項卡中,你可以設定按鈕的標籤(顯示的文字),例如 "點擊顯示問候"。


3. **新增巨集**:

   - 在 "屬性" 對話框中,切換到 "執行動作" 選項卡,選擇 "指派巨集(Edit Macro)"。


4. **編寫巨集程式碼**:

   - 在巨集編輯器中,你可以編寫按下按鈕後要執行的操作的巨集程式碼。以下是一個示例巨集程式碼,用於在滑鼠位置顯示 "Hello 您好"。


Sub ShowGreetingAtMousePosition

    Dim oDoc As Object

    Dim oViewCursor As Object

    Dim oTextCursor As Object

    Dim oText As Object


    oDoc = ThisComponent

    oViewCursor = oDoc.CurrentController.getViewCursor()

    oTextCursor = oViewCursor.getText().createTextCursorByRange(oViewCursor)

    oText = oDoc.Text


    oText.insertString(oTextCursor, "Hello 您好", False)

End Sub



5. **關聯巨集與按鈕**:

   - 在巨集編輯器中,將上述示例巨集程式碼複製並貼上到巨集編輯器視窗中。

   - 關閉巨集編輯器。

   - 回到 Writer 文件,確保按鈕已被選取。

   - 在 "按鈕屬性" 對話框中,切換到 "事件(Events)" 選項卡。

   - 在 "滑鼠按下(Mouse Button Pressed)" 事件下拉選單中,選擇你剛剛建立的巨集(例如 "ShowGreetingAtMousePosition")。


6. **測試按鈕**:

   - 關閉 "按鈕屬性" 對話框。

   - 點擊你創建的按鈕。你應該會在滑鼠位置看到顯示 "Hello 您好"。

在 LibreOffice Calc 中製作一個按鈕,然後新增一個巨集以在按下按鈕時,在儲存格 A1 中顯示 "Hello 您好"

 在 LibreOffice Calc 中製作一個按鈕,然後新增一個巨集以在按下按鈕時,在儲存格 A1 中顯示 "Hello 您好",請按以下步驟進行:


1. **建立按鈕**:

   - 開啟 LibreOffice Calc。

   - 在選單列中,選擇 `檢視(View)` > `工具列(Toolbars)` > `表單控制項(Form Controls Toolbar)`,以顯示 "表單控制項"。

   - 在控制項工具列中,找到並點擊 "推動按鈕(Insert Button)" 圖示。然後在你想要按鈕出現的位置,畫一個矩形。


2. **編輯按鈕屬性**:

   - 在設計模式下繪製按鈕的過程中,在按鈕右鍵選控制項屬性會彈出一個對話框。在這個對話框中,你可以設定按鈕的文字、提示等屬性。在 "標題(B)" 欄位中輸入你想要顯示在按鈕上的文字,例如 "點擊顯示問候"。


3. **新增巨集**:

   - 確保你的按鈕已經選取(點擊它一次)。

   - 在選單列中,選擇 `工具(Tools)` > `巨集(Macros)` > `編輯巨集(Edit Macros)`。這將打開一個巨集編輯器。


4. **編寫巨集程式碼**:

   - 在巨集編輯器中,你可以編寫按下按鈕後要執行的操作的巨集程式碼。以下是一個示例巨集程式碼,用於在按下按鈕時,在儲存格 A1 中顯示 "Hello 您好"。


Sub ShowGreeting

    Dim oSheet As Object

    Dim oCell As Object


    oSheet = ThisComponent.Sheets(0) ' 可能需要調整工作表索引

    oCell = oSheet.getCellByPosition(0, 0) ' A1 儲存格


    oCell.setString("Hello 您好")

End Sub



5. **關聯巨集與按鈕**:

   - 在巨集編輯器中,複製上述示例巨集程式碼,並將其貼上到巨集編輯器視窗中。

   - 關閉巨集編輯器。

   - 回到你的工作表,確保按鈕已被選取。

   - 在工具列上選擇 `表單控制項(Form Controls Toolbar)`。

   - 點擊 此按鈕右鍵選控制項屬性,選動作在執行動作(B)右邊...點選指派中執行動作選巨集找出巨集名稱。

   - 在 "巨集" 下拉選單中,選擇你剛剛建立的巨集(例如 "ShowGreeting")。

   


6. **測試按鈕**:

   - 在表單控制項中關閉設計模式。

   - 點擊你創建的按鈕。你應該會在儲存格 A1 中看到顯示 "Hello 您好"。


請注意,上述步驟可能因為你的特定版本或設定而有所不同,但整體來說,這是在 LibreOffice Calc 中建立按鈕並新增巨集的一般過程。你可能需要根據你的實際情況進行一些調整。

2023年8月16日 星期三

如何在libreoffice calc 將欄位前後空白處刪除

 

  1. 開啟您的Calc文件。

  2. 選擇您想要進行操作的欄位。

  3. 點擊菜單中的 "編輯"。

  4. 從下拉菜單中選擇 "尋找和取代"(或使用快捷鍵 Ctrl + H)。

  5. 在 "尋找和取代" 對話框中,切換到 "其他選項" 選項卡。

  6. 在 "尋找" 欄位中輸入 ^[:space:]+|[:space:]+$。這個正則表達式將匹配字串開頭和結尾的所有空白字符。

  7. 或者使用^\s+|\s+$。這個正則表達式將匹配字串開頭和結尾的所有空白字符。

  8. 在 "取代" 欄位中不要輸入任何內容,保持空白。

  9. 在其他選項中選常規表述式

  10. 點擊 "全部取代" 按鈕