current position:Home>When the python docx template library circularly extracts Excel data, a file can be saved after each rendering, which cannot be directly generated into a word file after the cycle
When the python docx template library circularly extracts Excel data, a file can be saved after each rendering, which cannot be directly generated into a word file after the cycle
2022-02-02 20:11:53 【CSDN Q & A】
python It's going on excel To word Mail merge , During cyclic extraction , Cannot be generated directly in a word In the document .
from docxtpl import DocxTemplate,InlineImagefrom docx.shared import Cmfrom mailmerge import MailMerge # Mail merge import jinja2import xlrd #excel Read def Covert_Excel_To_Word(): # open Excel file workbook = xlrd.open_workbook(r" Statistical table .xls") sheet = workbook.sheet_by_index(0) nrow = sheet.nrows # obtain excel Maximum number of rows word_path = " Information card .docx" contexts = [] # Open the specified Word Templates for i in range(2,nrow): word = DocxTemplate(" Information card .docx") picture = InlineImage(word,'E:/venv/Lib/a.jpg',width=Cm(3)) context = {
' Serial number ': sheet.cell_value(i, 0), ' Disease body number ': sheet.cell_value(i, 1), ' The name of the road ': sheet.cell_value(i, 2), ' Detailed description of the location ': sheet.cell_value(i, 3), ' Central coordinates _X': sheet.cell_value(i, 4), ' Central coordinates _Y': sheet.cell_value(i, 5), ' Type of hidden danger ': sheet.cell_value(i, 6), ' Hidden danger length ': sheet.cell_value(i, 7), ' Hidden danger width ': sheet.cell_value(i, 8), ' Hidden danger depth ': sheet.cell_value(i, 10), ' Hazard level ': sheet.cell_value(i, 12), ' Cause analysis ': sheet.cell_value(i, 13), ' The disposal of advice ': sheet.cell_value(i, 14), ' Map location ': picture } jinja_env = jinja2.Environment(autoescape=True) word.render(context,jinja_env) # word.save('ceshi'+str(sheet.cell(i, 0).value)+'.docx' contexts.append(context) with MailMerge(word_path) as doc: doc.merge_templates(contexts, separator='page_break') output = r'E:\venv\Lib\ test .docx' doc.write(output)if __name__ == '__main__': Covert_Excel_To_Word()###### Traceback (most recent call last): File "E:\venv\Lib\word Illustration test 1.py", line 44, in <module> Covert_Excel_To_Word() File "E:\venv\Lib\word Illustration test 1.py", line 39, in Covert_Excel_To_Word doc.merge_templates(contexts, separator='page_break') File "D:\python\lib\site-packages\mailmerge.py", line 234, in merge_templates self.merge(parts, **repl) File "D:\python\lib\site-packages\mailmerge.py", line 254, in merge self.__merge_field(part, field, replacement) File "D:\python\lib\site-packages\mailmerge.py", line 266, in __merge_field text_parts = text.replace('\r', '').split('\n')AttributeError: 'float' object has no attribute 'replace'
Traceback (most recent call last): File "E:\venv\Lib\word Illustration test 1.py", line 44, in <module> Covert_Excel_To_Word() File "E:\venv\Lib\word Illustration test 1.py", line 39, in Covert_Excel_To_Word doc.merge_templates(contexts, separator='page_break') File "D:\python\lib\site-packages\mailmerge.py", line 234, in merge_templates self.merge(parts, **repl) File "D:\python\lib\site-packages\mailmerge.py", line 254, in merge self.__merge_field(part, field, replacement) File "D:\python\lib\site-packages\mailmerge.py", line 266, in __merge_field text_parts = text.replace('\r', '').split('\n')AttributeError: 'float' object has no attribute 'replace'
It can be extracted directly and circularly , Save in a document
Refer to the answer 1:
Look at the error tips , It should be character type , But the argument is floating-point
Check it like this , See if there is such a situation in the generated data , If there is , At the corresponding position of the generated data , Add one str , Convert to character type .
Refer to the answer 2:
copyright notice
author[CSDN Q & A],Please bring the original link to reprint, thank you.
https://en.primo.wiki/2022/02/202202022011511959.html
The sidebar is recommended
- Generate images from HTML pages and download them into PDF files
- Two Python experiment questions
- Hidden display problems in HTML
- Is there any good analysis process for push box problem
- What's going on here?.,!
- Cyclic input and output. If the input is a number, it will print. If the input is not a number, it will print No
- C language freshman PTA input an English sentence, change the first letter of each word into capital letters.
- Question e: snake walking, please help me
- Why is the attenuation of wave height in numerical simulation serious?
- Difference between digital image processing and image signal processing (ISP)
guess what you like
-
Oracle a column of multi value update problem.
-
Write a program in Python.
-
How can Python write here to become a variable
-
Which rstudio is installed in win7 64 bit? Dear friends, the previous connection can install w10,8,7, but now it can only install W10. Cry.
-
Which is better, CCD camera tracking or gray sensor tracking
-
Virtual reality combined with AR space
-
How to click two label controls in QT to subtract the customized numbers in the control
-
Ask you why there is a period of garbled code in front of the output?
-
QR code generation of shopping scanning payment and third-party payment
-
The Internet is a large network composed of many small networks. Can a local area network also be such a small network? What's more, how large is the coverage of a small network in a large network?
Random recommended
- Write a function to randomly generate an array of length n with elements from 0 to 99
- I don't understand very well. Can you explain it?
- Help me look at the code (I'm just a freshman, so I only know C). Why the bill The data in txt will always become 0 (after each command 1 is executed and more than one order is entered, only the last order in txt is saved, and all the others become 0) (o
- After the Ubuntu language is switched to English, two desktops appear
- Ora-01555 snapshot is too old. Fallback segment number (name) is too small. Ora-22924 snapshot is too old
- Win10 system boot unlimited automatic repair, recycling the use of Baidu methods are invalid
- A node of database RAC cannot be accessed normally
- Android SDK does not have uiautomatorviewer Bat file
- How should this program be completed
- One to many query of mybatis. The query conditions are in multiple parties. PageHelper paging is integrated. How can this XML be better implemented
- Error in NPM run dev: unknown option '-- inline'
- Java database: error caused by: Java lang.ClassNotFoundException: Didn't find class 'java. sql. Sqltype 'problem, how to solve it?
- What attachments do SQL server send mail with?
- In the built-in browser in windows, if you can't open the direct search web page, you can open the web page by using the web address. How to solve it?
- Tomcat failed to start. Would you like to see help
- How does the StrCmp function compare string sizes? What is the method
- Find the first 30 numbers of sequence 1 1 2 3 5 8 13 21
- Java finds array elements of the specified type
- Vue3 uses Axios to request JSON files in the public folder, and there is always a 500 error!
- Is a graphic inheritance problem
- When two string attributes are defined in the class, an error is reported: 0xc005: an access conflict occurs when writing to the location 0xCC.
- Java finds array elements of the specified type
- Vue I used vant to do asynchronous shutdown. There is a mobile phone number in it. Make sure you keep turning around. Is there a solution
- PHP makes a web page, adding code to the body block in HTML causes the page to be garbled, and cannot modify header information - headers already sent is displayed
- How does Python docx set character spacing? Or is there any library that can set character spacing?
- Vue3 project jest configuration SCSS
- How to store subscripts in array in C language
- Warning during compilation: deprecated conversion from string constant to 'char *' [- wwrite strings];
- How do I ensure the file upload order when I use FileReader onload to upload files in JS
- Design of score statistics system
- Please answer the questions about JavaScript!
- Please tell me the circuit principle of this circuit diagram! Hurry!
- Why is the first output 40 and the second output 4?
- The virtual machine can't be opened, and this can't be changed
- What kind of code will this type of question be realized through
- What problem does artificial intelligence causal learning want to solve?
- Notebook win10 system, www.bing.com Com took too long to respond
- All prime numbers between 10 and 300 are output by programming, and 5 prime numbers are required to be output per line (implemented in Python language)
- If the stack is required to write four letters wrong, the operation chain should be reported
- C voice writing will not come. Let's have a look