调用wps表格 向单元格写入数据 简单模式 更适合于 循环 重复 模块 - 优化3

动作开发 · 1376 次浏览
涛涛涛 创建于 2天22小时前

1.可以按单元格写入   如:   a1:d1   a3:c3   d3:h3    单行写入  暂不能多行写入   推荐使用

2.可以按序号写入       如:  1, 2|b, 6|d   写入第1\2\6行  从第a\b\d列开始写入(数值或字母)   单行写入  暂不能多行写入  默认从第a列开始写入    推荐使用

3.1可以自由写入使用 Range.End()实现      如:a,2,3,f   从第a,2,3,f列开始写入(数值或字母)   留空默认从a列开始写入  需要注意空行

如:Range("A1").End( xlDown).Row+1  xlUp 1.向上    xlDown  2.向下  单行写入

3.2可以自由写入使用ActiveCell()实现        如:0  从当前选择活动单元格开始写入   推荐使用

 

写入数据格式为:  文件1-文件2-文件3-文件4-文件5-文件6  要用"-"连接

            
 
 
 
 
// Quicker将会调用的函数。可以根据需要修改返回值类型。
public static void Exec(Quicker.Public.IStepContext context)
{
    var gg = context.GetVarValue("g3") as String;  // 读取动作里的变量值
    
    string[] bb = gg.Split('|');//需要用单引号
    
    int b0 = Convert.ToInt32(bb[0]);
    
    string[] dd = bb[1].Split('-');//需要用单引号
    
    int i = dd.Length;
    
    
    Excel.Application excelApp = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");

    Excel.Workbook wb = excelApp.ActiveWorkbook as Excel.Workbook;
    
    Excel.Worksheet ws = wb.ActiveSheet as Excel.Worksheet; // 获取当前活动工作表,显示转化用【as】进行转换,获取工作表
    Excel.Range range1;//提前声明变量
    
    switch (b0)
        {
            case 1:
                   range1 = ws.Range[bb[2]] as Excel.Range;
                   range1.Value2 = toy2(dd);
                break;
            case 2:
                if(bb[3]==""){
                       range1 = ws.Cells[bb[2],"a"] as Excel.Range;
                   }else{
                       range1 = ws.Cells[bb[2],bb[3]] as Excel.Range;//bb[3]可以为数值1-26,也可以为字母a-z
                   }
                   range1 = range1.Resize[1, i];
                   range1.Value2 = toy2(dd);
                   break;
            default:
                  if (bb[2] == "0"){
                      range1 = excelApp.ActiveCell as Excel.Range;
                      range1 = range1.Resize[1, i];
                       range1.Offset[1,0].Activate();
                       range1.Value2 = toy2(dd);
                  }else{
                      range1 = ws.Cells[1,bb[2]] as Excel.Range;//bb[3]可以为数值1-26,也可以为字母a-z
                      if (range1.Value2 == null){
                          range1 = range1.Resize[1, i];
                          range1.Value2 = toy2(dd);
                      }else if(range1.Offset[1,0].Value2 == null){
                          range1 = range1.Offset[1,0].Resize[1, i];
                          range1.Value2 = toy2(dd);
                      }else{
                          int j = range1.get_End(Excel.XlDirection.xlDown).Row+1;
                          range1 = ws.Cells[j,bb[2]] as Excel.Range;
                          range1 = range1.Resize[1, i];
                          range1.Value2 = toy2(dd);
                      }
                }
                break;
        }
        
      
}




static string[,] toy2(string[] input)
{

    string[] parts = input;
    
    string[,] data = new string[1, parts.Length];
    for (int i = 0; i < parts.Length; i++)
    {
        data[0, i] = parts[i];
    }

    return data;
}
涛涛涛 最后更新于 2025/7/1

回复内容
暂无回复
回复主贴