Dim worksheet As Excel.Worksheet = CType(workbook.Sheets(i + 1), Excel.Worksheet) worksheet.Name = result(i).Key & "钢网架" worksheet.Cells.VerticalAlignment = Excel.Constants.xlCenter worksheet.Cells.HorizontalAlignment = Excel.Constants.xlCenter worksheet.Cells.Font.Name = "宋体" worksheet.Cells.Font.Color = Color.Black '设置标题 Dim logoRange As Excel.Range = worksheet.Range(worksheet.Cells(1, 1), worksheet.Cells(1, 1)) '选取单元格 logoRange.Value2 = "深圳斯坦雷电气有限公司" logoRange.HorizontalAlignment = Excel.Constants.xlLeft logoRange.Font.Size = 14 logoRange.EntireRow.RowHeight = 18.75 '设置标题 Dim titleRange As Excel.Range = worksheet.Range(worksheet.Cells(2, 1), worksheet.Cells(2, 8)) '选取单元格 titleRange.Merge(True) '合并单元格 titleRange.Value2 = resultWorkshop(w).Key & "钢网放置架记录表" titleRange.Font.Size = 23 titleRange.Font.Bold = True titleRange.EntireRow.RowHeight = 32.25 '副标题 Dim tipRange1 As Excel.Range = worksheet.Range(worksheet.Cells(3, 1), worksheet.Cells(3, 4)) worksheet.Range("A3:D3").Merge(0) '合并单元格 tipRange1.Value2 = "第一层" tipRange1.Font.Size = 20 tipRange1.Font.Bold = True '副标题 Dim tipRange2 As Excel.Range = worksheet.Range(worksheet.Cells(3, 4), worksheet.Cells(3, 8)) worksheet.Range("E3:H3").Merge(0) '合并单元格 tipRange2.Value2 = "第二层" tipRange2.Font.Size = 20 tipRange2.Font.Bold = True '列标题 Dim headerStr As String() = {"序号", "机种名", "使用次数", "备注", "序号", "机种名", "使用次数", "备注"} For j = 0 To headerStr.Length - 1 worksheet.Cells(4, j + 1) = headerStr(j) worksheet.Range(worksheet.Cells(4, j + 1), worksheet.Cells(4, j + 1)).RowHeight = 29.25 Select Case j Case 0, 4 worksheet.Range(worksheet.Cells(4, j + 1), worksheet.Cells(4, j + 1)).ColumnWidth = 5.38 Case 1, 5 worksheet.Range(worksheet.Cells(4, j + 1), worksheet.Cells(4, j + 1)).ColumnWidth = 27 worksheet.Range(worksheet.Cells(4, j + 1), worksheet.Cells(4, j + 1)).EntireColumn.WrapText = True Case 2, 6 worksheet.Range(worksheet.Cells(4, j + 1), worksheet.Cells(4, j + 1)).ColumnWidth = 10.75 Case 3, 7 worksheet.Range(worksheet.Cells(4, j + 1), worksheet.Cells(4, j + 1)).ColumnWidth = 12.13 worksheet.Range(worksheet.Cells(4, j + 1), worksheet.Cells(4, j + 1)).EntireColumn.Font.Size = 10 worksheet.Range(worksheet.Cells(4, j + 1), worksheet.Cells(4, j + 1)).EntireColumn.WrapText = True End Select Next 保持原有逻辑进行优化,让代码有更好的可读性,可维护性,提高性能,并说明理由
时间: 2024-04-07 18:32:02 浏览: 26
首先,建议将代码进行模块化,将不同的功能封装成独立的函数或模块,提高代码的可读性和可维护性。
其次,可以采用一些技巧来提高代码的性能,例如使用数组代替列表,使用StringBuilder代替字符串拼接等。
另外,建议使用常量代替魔法数字,使用枚举类型代替字符串常量,增加代码的可读性和可维护性。
最后,可以增加注释和文档说明,帮助其他开发人员理解代码的逻辑和用途。
相关问题
workbook = openpyxl.Workbook() worksheet = workbook.active
这是使用 Python 中的 openpyxl 库创建一个 Excel 文件并且选定当前的工作表的代码。openpyxl 是用于读取和写入 Excel 文件的 Python 库。这段代码创建一个新的 Excel 文件,并将当前的工作表设置为新创建的文件的第一个工作表。您可以使用 openpyxl 库来对 Excel 文件进行操作,比如读取数据、写入数据、修改单元格格式等等。
worksheet.Calculate += Worksheet_Calculate;这一行有错误CS1656
这个错误通常是因为事件处理方法的参数不正确导致的。在使用Calculate事件时,事件处理方法的参数应该是一个Worksheet对象,而不是两个对象。因此,你需要修改事件处理方法的参数类型,使其与Calculate事件的参数类型相匹配。
下面是修改后的代码,可以解决CS1656错误:
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Office.Interop.Excel;
namespace ExcelDemo
{
class Program
{
static void Main(string[] args)
{
Application app = new Application();
Workbook workbook = app.Workbooks.Open(@"C:\test.xlsx"); //打开Excel文件
Worksheet worksheet = workbook.Worksheets[1]; //获取第一个工作表
//在H列输入内容或H列内容更新时,M列置入公式=len(E4)
worksheet.Calculate += Worksheet_Calculate;
Console.WriteLine("请在Excel中修改H列的内容...");
Console.ReadLine();
workbook.Save(); //保存Excel文件
workbook.Close(); //关闭Excel文件
app.Quit(); //退出Excel应用程序
}
private static void Worksheet_Calculate(Worksheet Sh)
{
Range rangeH = Sh.Range["H:H"]; //获取H列的Range对象
Range rangeM = Sh.Range["M:M"]; //获取M列的Range对象
for (int i = 1; i <= rangeH.Rows.Count; i++)
{
Range cellH = rangeH.Cells[i]; //获取H列的单元格
Range cellM = rangeM.Cells[i]; //获取M列的单元格
if (cellH.Value != null) //如果H列的单元格有值
{
string formula = "=LEN(" + cellH.Offset[0, -3].Address + ")"; //构造公式
cellM.Formula = formula; //在M列输入公式
}
}
}
}
}
```
在上面的代码中,我们修改了Worksheet_Calculate方法的参数,使其与Calculate事件的参数类型相匹配。这样,就可以正确地处理Calculate事件,实现在H列输入内容或H列内容更新时,M列置入公式的功能。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)