solidworks采用excel设置材质+属性+单位=20200207.xlsm
时间: 2023-11-23 13:03:18 浏览: 124
SolidWorks是一款基于计算机辅助设计(CAD)的三维建模软件,它允许用户创建、模拟和可视化各种机械、电子和其他产品。为了方便用户管理和应用材质、属性和单位,SolidWorks采用了与微软Excel集成的功能。
SolidWorks允许用户通过导入名为"属性文件"的Excel文件来管理零件和装配体的材质和属性。其中,单位被设置为"20200207.xlsm"。
在这个Excel表格中,每一行对应着一个材质或属性的条目。用户可以使用Excel的强大编辑和计算功能,根据自己的需求来添加、删除或修改条目。例如,用户可以设置材质的名称、密度、弹性模量等参数;也可以设置零件或装配体的颜色、说明、制造商等属性信息。
当用户在SolidWorks中创建或编辑零件时,可以通过选择属性文件并将其应用到零件中,快速为其分配相应的材质和属性。这种集成功能极大地简化了用户管理和应用材质的流程,提高了设计效率和准确性。
另外,SolidWorks还能够与Excel文件中定义的单位进行自动适配。这意味着用户可以在SolidWorks中直接使用Excel文件中定义的单位,无需手动进行单位转换和调整。
综上所述,SolidWorks通过集成Excel功能来管理材质、属性和单位,为用户提供了更便捷和高效的设计环境。
相关问题
file_path = r"d:\user\01429213\desktop\数据原表\场地效益看板 .xlsm" workbook = excel.Workbooks.Open(file_path) # 获取或添加工作表 try: # 如果子表存在,则覆盖原子表 ws = workbook.Worksheets("货机数据") ws.Cells.ClearContents() except: # 如果子表不存在,则添加新子表 ws = workbook.Worksheets.Add(After=workbook.Sheets(workbook.Sheets.Count)) ws.Name = "货机数据" # 将数据写入工作表 ws.Range(ws.Cells(1, 1), ws.Cells(styled_df.data.shape[0] + 1, styled_df.data.shape[1])).Value = styled_df.data.values.tolist() # 设置表格样式 ws.Range(ws.Cells(1, 1), ws.Cells(styled_df.data.shape[0] + 1, styled_df.data.shape[1])).Value = styled_df.data.values.tolist() # 保存文件 workbook.Save()帮我完善一下代码 使日期格式为原日期格式,并且插入数据包括列标题
要使日期格式为原日期格式,并且插入数据包括列标题,可以按照以下步骤进行:
1. 获取 Excel 工作表对象 ws 和样式 DataFrame 对象 styled_df。
2. 将样式 DataFrame 对象的数据部分转换为二维列表,即 styled_df.data.values.tolist()。
3. 在二维列表的头部插入一行列标题,即 [styled_df.columns.to_list()]。
4. 将新的二维列表写入 Excel 工作表的单元格中,即 ws.Range(ws.Cells(1, 1), ws.Cells(styled_df.data.shape[0] + 1, styled_df.data.shape[1])).Value = [styled_df.columns.to_list()] + styled_df.data.values.tolist()。
5. 遍历样式 DataFrame 对象的样式信息,将每个单元格的样式应用到 Excel 工作表的对应单元格中。
6. 遍历日期列的单元格,将日期格式设置为原日期格式。
以下是具体的代码实现:
```python
# 获取 Excel 工作表对象 ws 和样式 DataFrame 对象 styled_df
ws = workbook.Worksheets("货机数据")
styled_df = get_styled_dataframe()
# 获取样式 DataFrame 对象的数据部分和列标题
data = styled_df.data.values.tolist()
columns = styled_df.columns.to_list()
# 将列标题插入到数据部分的头部
data.insert(0, columns)
# 将新的二维列表写入 Excel 工作表的单元格中
ws.Range(ws.Cells(1, 1), ws.Cells(styled_df.data.shape[0] + 1, styled_df.data.shape[1])).Value = data
# 遍历样式 DataFrame 对象的样式信息,将每个单元格的样式应用到 Excel 工作表的对应单元格中
for i, row in styled_df.iterrows():
for j, cell in row.iteritems():
apply_cell_style(ws.Cells(i+1, j+1), cell)
# 遍历日期列的单元格,将日期格式设置为原日期格式
date_format = "yyyy/m/d" # 假设原日期格式为 "yyyy/m/d"
for i in range(2, ws.UsedRange.Rows.Count + 1):
cell = ws.Cells(i, 3) # 假设日期列为第三列
cell.NumberFormat = date_format
# 保存文件
workbook.Save()
```
其中,假设日期列为第三列,日期格式为 "yyyy/m/d"(可以根据实际情况进行修改)。
now = datetime.datetime.now().time() # 获取当前时间 if now >= datetime.time(8, 0, 0) and now <= datetime.time(19, 0, 0): # 当前时间在08:00到19:00之间 img_path = 'D:\出勤人力白班.PNG' else: # 当前时间不在08:00到19:00之间 img_path = 'D:\出勤人力夜班.PNG' # 打开 Excel 文件 wb = openpyxl.load_workbook(r'D:\出勤匯總\郵件.xlsx') # 选择工作表 ws = wb.active # 读取一列数据并生成列表郵件收件人 recipients = [] for cell in ws['A']: recipients.append(cell.value) # 读取一列数据并生成列表郵件CC recipients1 = [] for cell in ws['B']: recipients1.append(cell.value) # 使用 Outlook API 发送电子邮件 outlook = win32com.client.Dispatch('Outlook.Application') mail = outlook.CreateItem(0) mail.To = ";".join(recipients) mail.CC = ";".join(recipients1) mail.Subject = '自動報告5 出勤人力' # 添加图片到正文中 attachment = mail.Attachments.Add(img_path, 6, 0) html_body = f'<html><body><h2>Dear sir:</h2><p>如下為每日加班管控明細,還請查閲,tks!!!</p><img src="cid:{attachment.FileName}"></body></html>' mail.HTMLBody = html_body attachment = mail.Attachments.Addr("D:\出勤匯總\SMT部編制人力.xlsm") mail.Send() 報TypeError: sequence item 1: expected str instance, NoneType found怎麽修改
这个错误是因为 `mail.Attachments.Add()` 方法返回的是 `None`,而你把它赋值给了 `attachment` 变量。所以在后面调用 `mail.Attachments.Addr()` 方法时,出现了类型错误。
可以将 `mail.Attachments.Add()` 方法的返回值直接作为参数传递给 `mail.Attachments.Addr()` 方法,就可以解决这个问题。修改后的代码如下:
```python
now = datetime.datetime.now().time() # 获取当前时间
if now >= datetime.time(8, 0, 0) and now <= datetime.time(19, 0, 0):
# 当前时间在08:00到19:00之间
img_path = 'D:\出勤人力白班.PNG'
else:
# 当前时间不在08:00到19:00之间
img_path = 'D:\出勤人力夜班.PNG'
# 打开 Excel 文件
wb = openpyxl.load_workbook(r'D:\出勤匯總\郵件.xlsx')
# 选择工作表
ws = wb.active
# 读取一列数据并生成列表郵件收件人
recipients = []
for cell in ws['A']:
recipients.append(cell.value)
# 读取一列数据并生成列表郵件CC
recipients1 = []
for cell in ws['B']:
recipients1.append(cell.value)
# 使用 Outlook API 发送电子邮件
outlook = win32com.client.Dispatch('Outlook.Application')
mail = outlook.CreateItem(0)
mail.To = ";".join(recipients)
mail.CC = ";".join(recipients1)
mail.Subject = '自動報告5 出勤人力'
# 添加图片到正文中
attachment = mail.Attachments.Add(img_path, 6, 0)
html_body = f'<html><body><h2>Dear sir:</h2><p>如下為每日加班管控明細,還請查閲,tks!!!</p><img src="cid:{attachment.FileName}"></body></html>'
mail.HTMLBody = html_body
# 添加附件
mail.Attachments.Add("D:\出勤匯總\SMT部編制人力.xlsm")
# 发送邮件
mail.Send()
```
注意,修改后的代码中,我把 `mail.Attachments.Addr()` 方法的调用删除了。因为这个方法的作用是添加附件,而你已经调用了 `mail.Attachments.Add()` 方法添加了附件,所以这里就不需要再添加了。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)