调用wps多行写入单元格 适用于一次性写入大量数据

动作开发 · 19 次浏览
涛涛涛 创建于 6小时10分钟前

1.单元格方式             单元格格式,如: a1:d3  a2 d4
  
2.活动单元格方式      选中要写入单元格

单元格格式,如: a1:d3  a2 d4

拆分符           与数据连接符保持一致  拆分符或连接符要为单字符(如:- b a + *)

写入数据        数据连接符要与拆分符保持一致
连接符为(-)   拆分符也要为(-)
a1-a2-a3
b1-b2-b3
连接符为(+)   拆分符也要为(+)
a1+a2+a3
b1+b2+b3

https://getquicker.net/subprogram?id=c47bacd7-1913-48a5-7f36-08ddb86173c7  子程序

https://getquicker.net/Sharedaction?code=7c81a65b-2862-426b-7f37-08ddb86173c7 动作

 



//.cs  文件类型,便于外部编辑时使用
// 引用必要的命名空间
using Excel = Microsoft.Office.Interop.Excel;
// 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]);
    
    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;string[,] data;int i;int j;//提前声明变量
    
    switch (b0)
    {
        case 1:
        range1 = ws.Range[bb[1]] as Excel.Range;
        data = toy2(bb[2],bb[3]);
        i=data.GetLength(0);
        j=data.GetLength(1);
        range1 = range1.Resize[i, j];
      range1.Value2 = data;
            break;
        case 2:
          range1 = excelApp.ActiveCell as Excel.Range;
          data = toy2(bb[2],bb[3]);
        i=data.GetLength(0);
        j=data.GetLength(1);
        range1 = range1.Resize[i, j];
        range1.Offset[i,0].Resize[1, 1].Activate();
      range1.Value2 = data;
      break;
    }
    
}
 
 
static string[,] toy2(string input,string h1)
{
    char h=h1[0];
 
    string[] rows = input.Split('\n');string[] cols = rows[0].Split(h);
 
string[,] p2 = new string[rows.Length, cols.Length];
 
for (int i = 0; i < rows.Length; i++)
{
    cols = rows[i].Split(h);
    for (int j = 0; j < cols.Length; j++)
    {
        p2[i, j] = cols[j].Trim();
    }
}
 
    return p2;
}

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