C# excel 快速写入数据

C# excel 快速写入数据,第1张

引用dll文件,直接写?

还可以尝试,多线程!

恩,不错的想法,估计实现不了!

O(∩_∩)O哈哈~

using Excel;//需要引用你本地机器上的EXCEL文件,或者直接做成DLL!

ExcelApplication app= new ExcelApplication();

appVisible = true;//显示EXCEL

Workbook book1 = appWorkbooksAdd("??", TypeMissing);

Worksheet sheet1 = (Worksheet)book1Sheets[1];

Range rng1 = sheet1get_Range("A1:C3,E2:G6", TypeMissing); //设置 *** 作区域为个不连续区域

rng1NumberFormatLocal = "@"; //格式设置为文本

rng1FontBold = true; //是否加粗

rng1Value2 = "2006147214E00045"; //对 *** 作区域赋值

rng1FontColorIndex = "3"; //设置字体颜色

appDisplayAlerts = false; //不出现提示框

book1Save(); //保存

book1Close(TypeMissing, "??", TypeMissing);//关闭

appQuit();

下线划,属于格式问题,公式是无法提取的,需要用VBA写程序来提取。

前提你的Office版本是支持VBA的。如果是WPS个人版,是用不了VBA的。

方法:

第一步、

启用一张全新的工作表,把你需要提取的数据,整列复制到新表的A列中。

第二步、

按Alt+F11打开VBA编辑器,

按图上的箭头指示,

先点“插入”---“模块”,

在左侧的工程资源管理器中,双击模块,

在右侧的模块代码编辑区中,粘贴代码。

最后,点击画圆圈的那个按钮,运行代码,即可。

如果数据较多,就适当的等它运行一会,它提取完以后会d出提示的。

代码如下:

Sub 提取下划线内容()

  Dim rng As Range, rg As Range, i%, Irow&, Istr$, k%

  Irow = Range("A" & RowsCount)End(3)Row '获取A列的最大行号

  For Each rng In Range("A1:A" & Irow) '遍历A列每一个有数据的单元格

      For i = 1 To Len(rng) '遍历单元格中每一个字符

          If rngCharacters(Start:=i, Length:=1)FontUnderline <> xlUnderlineStyleNone Then

              Istr = Istr & Mid(rng, i, 1)

              If i = Len(rng) Then k = 1

          Else

              If Istr <> "" Then k = 1

          End If

          If k = 1 Then '输出结果

              Cells(rngRow, ColumnsCount)End(1)Offset(0, 1) = Istr

              k = 0: Istr = "" '重置变量

          End If

      Next

  Next

  MsgBox "提取完毕", 64 'd出提示

End Sub

遍历数据区域,然后对比,下面是示例,因为你没说结果怎么处理,我只是把结果打印在立即窗口作为示例,你可以自行修改最终数据要处理的方式

Option Explicit

Sub test()

    Dim rng As Range

    For Each rng In Sheet1[a1:a10] '这里选表格和区域

        If IsDate(rngValue) Then

            If Weekday(rngValue, vbMonday) = 7 Or Weekday(rngValue, vbMonday) = 6 Then

                If Hour(rngValue) > 14 And Hour(rngValue) < 17 Then

                    DebugPrint rngValue

                End If

            End If

        End If

    Next rng

End Sub

假设你的数据库里的型号都放在你的T列里,按ALT+F11调出vba编辑器,双击左边工程管理器里的sheet1(sheet1),把下面的代码粘上就可以了,当你输的型号在T列找不到时,就会在F列显示该型号非法。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rng As Range

If TargetColumn = 5 Then

TargetOffset(0, 1)Clear

Set rng = Sheets(1)Range("t1:t" & RowsCount & "")Find(what:=TargetValue, lookat:=xlWhole)

If rng Is Nothing Then

TargetOffset(0, 1) = "非法型号"

End If

End If

End Sub

以上就是关于C# excel 快速写入数据全部的内容,包括:C# excel 快速写入数据、Excel 不带删除线的内容提取出来进行使用、vba 判断数据表里的时间是星期几等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9338717.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存