- 博客(57)
- 收藏
- 关注
原创 excel字符串列的文本分列合并
excel表有两列,第一列是“姓名”,第二列是“诊断”,有高血压、糖尿病等。我想出一个统计表,将每个人的诊断分为1-N列,比如张三,第一诊断高血压,第二诊断糖尿病,分列显示。打开“统计表”这个功能,选中“数据源”中的“姓名”,移动到右边的“统计列”。然后在“计算列”的“出院诊断”后面选择“计算类型”为“分列”,点“查询”。比如:=TEXTJOIN(",", TRUE, UNIQUE(FILTER(B:B, A:A=A2)))FILTER(B:B, A:A=A2)会选出与当前行A列姓名相同的所有B列诊断。
2024-06-24 08:56:52
920
原创 excel字符串列的文本合并
excel表有两列,第一列是“姓名”,第二列是“诊断”,有高血压、糖尿病等。我想出一个统计表,统计“姓名”,把某一个姓名的诊断不重复的用、拼接起来,比如“张三”的诊断为“点高血压”、糖尿病。打开“统计表”这个功能,选中“数据源”中的“姓名”,移动到右边的“统计列”。然后在“计算列”的“出院诊断”后面选择“计算类型”为“拼接”,点“查询”。比如:=TEXTJOIN(",", TRUE, UNIQUE(FILTER(B:B, A:A=A2)))TEXTJOIN()函数会把所有不重复的诊断用逗号和空格拼接起来。
2024-06-24 08:52:00
1025
原创 electron系列(一)调用dll
用electron的目的,其实很简单。就是web架构要直接使用前端电脑的资源,但是浏览器限制了使用,所以用electron来达到这个目的。其中调用dll是一个非常基本的操作。
2024-06-22 12:17:09
923
3
原创 小白学react之Next.js 14(三)React.useState
声明了一个状态变量 data,这个状态变量的类型是一个 Employee 对象的数组。data的初始值为一个空的Employee数组。声明了一个状态变量 editID,这个状态变量的类型是一个number。我们把它定义在app中,这样,整个app都能使用useState定义的变量,而且可以在app的任何地方使用setEditID和setData更改data和editID的值。
2024-06-22 12:10:55
669
原创 小白学react之Next.js 14(二)获取数据首字母变小写
数据库中有个字段名称叫“EmployeeID”,在asp.net core中定义的实体类属性也叫“EmployeeID”,在api中没有做任何处理,取的原始数据。发现取过来的数据变成了:employeeID : 14 人员姓名 : "倪**" 单位名称 : "社区" 性别 : "1" ,导致组件无法显示employeeID。
2024-06-21 08:36:55
597
原创 小白学react之Next.js 14(一)不配置路由的玩法
很明显,在src/app文件夹下面,我们有一个主页,叫page.tsx。其他的页面,也叫page.tsx,只是放在src/app下面不同的文夹里面。每一个文件夹就代表一个路径,每个文件夹中的 page.tsx 文件就是对应的页面组件。当你访问项目的根路径 / 时,将会加载 src/app/page.tsx 并显示主页。当你点击按钮时,useRouter 的 push 方法会导航到 /test 路径,这会加载 src/app/test/page.tsx 中的内容并显示测试页面。
2024-06-21 08:36:40
570
原创 java和c#比较(四)多线程
可以看出 C# 的async/await关键词使得异步编程更加直观和易读,而Java在这方面相对复杂一些,通常需要结合Future和ExecutorService来实现。
2024-06-20 10:11:25
558
原创 java和c#比较(三)内存管理PC电脑
当然你可以把.net程序放到容器化环境(如Docker),在Docker中,可以通过以下命令限制容器的内存使用:docker run -m 1g my-dotnet-application。Java: 支持多种垃圾回收算法,如串行GC(Serial GC)、并行GC(Parallel GC)、垃圾优先GC(G1 GC)、低延迟GC(如ZGC、Shenandoah GC)。Java: 类加载器负责加载类,类元数据和字节码通常存放在元空间中(从Java 8开始),而在之前的版本,信息存放在永久代。
2024-06-20 10:11:11
486
原创 java和c#比较(二)DataTable VS ResultSet
在Java中没有和DataTable类似的东西,如果取数据表通常使用ResultSet来从数据库中读取数据。在内存中操作数据,需要将数据从ResultSet中提取出来,并存储在其他数据结构中,比如List或Map。在C#中,DataTable是一个用来存储数据表格的内存类,和数据库的表非常像。我们来看一下c#中datable 统计 “金额”,条件是"姓名=张三"的代码,然后用java的Map来做同样的功能代码。DataTable不仅可以取数据库中的数据,还可以直接在内存中方便的添加或修改数据。
2024-06-19 09:39:16
680
原创 java和c#比较(一)jdbc VS ado.net取100万条记录到内存
就是说取数这项,java内存占用是.net的1.5倍,速度比.net快30%多。结论:同样的一个sqlite数据库表,同样一台电脑,单机测试数据读取到内存。java jdbc:用时26秒,内存占用2.58G。c# ado.net:用时34秒,内存占用1.68。
2024-06-19 09:14:20
640
原创 JAVAFX打包部署真正能用的办法(jdk21,javafx23)IntelliJ IDEA
直接构建工件是错误的,别尝试了,找不在JDK的。我也花了一天多的时间尝试了网上各种大神的办法,就没找到一个是正确的。4、进入到target文件夹,运行:java -jar demo-1.0-SNAPSHOT.jar,提示:“错误: 缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序”。恭喜你,打包成功了。11、现在是2024年6月17号,这篇博客应该是目前为止,唯一一篇说清楚了用jdk21和javafx23打包的文章。1、检查javafx的版本,如果是23以下的版本,你无法使用jdk21。
2024-06-18 08:10:38
947
2
原创 如何在windows中创建linux的sh文件
这就有点搞笑了,我在test.sh头上双击的,你跟我说找不到test.sh。再把这个文件的扩展名改为.sh,再到终端运行新的sh文件,这样呢就成功了。然后终端提示:“打不开文件test.sh”,无法正常使用。有了上面的尝试,我们找到了在windows中创建linux的sh文件的办法。就是将linux建好的sh文件弄一个放到windows电脑,需要的时侯用记事本把这个文件的内容改掉保存。对于非linux的使用者,我们可能希望把sh文件在windows中创建好,然后再复制到linux中使用。
2024-06-18 08:08:12
547
原创 零基础直接上手java跨平台桌面程序,使用javafx(七)用户操作界面探讨,这个系列结束
如果想用web,其实可以单独做出去,重点是在用户输入的界面。我们一般还是用web多一些,用javafx或者qt或者electron的情况,其实是为了调用前端电脑的资源。这些前端电脑资源调用,一般都是在用户操作的界面完成的,而不是在查询和统计的时侯。非表格的录入,都非常简单,我们尝试了一下用得最多,也是最主要的“表格录入”模式。结果是可以用的,代码我就不贴了,我只是测试了一下,没做完。所以想用javafx来做套娃web的,估计要放弃了,javafx的开发者估计也不想让javafx成为套娃的工具。
2024-06-17 10:42:22
590
原创 excel电子表格双表多列修改,点击式。
就是说你的查询条件是什么,我们这里“姓名”后面选“姓名”,“身份证号”后面选“身份证号”,表示查询条件是“sheet1”.“姓名”=“sheet2”.“姓名” 并且 “sheet1”.“身份证号”=“sheet2”.“身份证号”.然后我们点左下角那个绿色的勾“执行关联修改”,再点“提交修改并返回”两个工作表按姓名和身份证号关联查询,把“sheet1”的“民族”这一列改成“sheet2”的“民族”这一列,把“险种类型”那一列改成“sheet2”的“性别”这一列(仅为了测试)。2、点菜单栏的“多列修改”。
2024-06-17 10:41:46
2239
原创 .net8 blazor auto模式很爽(五)读取sqlite并显示(2)
在SharedLibrary的Repositories增加IEmployeeRepository。在Client的Services里增加EmployeeService。在BlazorApp1增加文件夹data,里面增加类dbcont。在Client的Program里面增加。然后我们运行程序,得到了数据库中的数据。在Client的_Imports增加。
2024-06-16 11:10:18
731
原创 .net8 blazor auto模式很爽(五)读取sqlite并显示(1)
为了访问sqlite,我们需要在Nuget中安装Microsoftr的EntityFrameworkCore、EntityFrameworkCore.Sqlite、EntityFrameworkCore.Sqlite.Core。我们在Client的Pages里面增加一个Testtable.razor,里面放一个table用来显示sqlite里面一张表的内容。在SharedLibrary的Models里增加employee。
2024-06-16 11:10:04
599
原创 .net8 blazor auto模式很爽(四)改造vs自动创建的Blazor auto为前后端分离模式(3)
在BlazorApp1建立一个api"WeatherForecastController",然后在BlazorApp1.Client用“WeatherForecastServices”对api进行调用,在SharedLibrary加了“IWeatherForecastRepository”进行前后端的连接。在BlazorApp1.Client的页面中,我们就可以很方便地使用 await WeatherForecastServices.GetWeatherForecastAsync()来获取数据了。
2024-06-15 08:25:04
691
原创 .net8 blazor auto模式很爽(四)改造vs自动创建的Blazor auto为前后端分离模式(2)
在SharedLibrary创建文件夹Repositories,用来存放接口文件。
2024-06-15 08:24:48
571
原创 .net8 blazor auto模式很爽(四)改造vs自动创建的Blazor auto为前后端分离模式(1)
将项目名称改为“SharedLibrary”,用来存放前后端共享的一些类和接口。下面我们把SharedLibrary设置为前后端的共同依赖。双击“BlazorApp1”和BlazorApp1.Client,出现配置文件,在里面增加“<ItemGroup></ItemGroup>”。在SharedLibrary新建一个文件夹“Models”用来存放一些实体类。删除掉BlazorApp1的Weather.razor。
2024-06-14 08:33:40
931
原创 .net8 blazor auto模式很爽(三)用.net8的Blazor自动模式测试,到底在运行server还是WebAssembly
通过测试,我们更加确信一点,我们要改造vs自动创建的.net8的Blazor自动模式项目,把所有的页面文件全部弄到Client里面去,用前后端分离的模式来使用Blazor。如果我们用另外一个浏览器,打开这个地址,只有在首次运行Counter才是server模式,其他的全是WebAssembly模式,你关掉浏览器再打开地址,第一次运行Counter也会是WebAssembly模式。在控制台输出"我在哪?通过运行我反复刷新,我们只有在Counter页面运行第二次时才能在浏览器的控制台看到"我在哪?
2024-06-14 08:32:53
893
原创 .net8 blazor auto模式很爽(二)用.net8创建Blazor自动模式项目
一个叫BlazorApp1,另外一个叫BlazorApp1.Client。没有Client就是以前的server,有Client就是Client。我们打开Counter可以看到其中有@rendermode InteractiveAuto这一行代码,这明确表示Counter要求Blazor根据执行环境自动选择最佳的渲染模式来渲染组件。在vs2022中创建新项目,在搜索框里输入blazor,选择blazor web app。我们打开NavMenu,可以看到里面有三个菜单项,其中一个是指向counter。
2024-06-13 08:00:15
362
原创 .net8 blazor auto模式很爽(一)Blazor WebAssembly(WASM)与Server在.net8中的完美结合
但是.net8出现了一种叫自动模式,官方解释是:开发者在创建 Blazor 项目时不再显式区分是 Blazor Server 还是 Blazor WebAssembly。这样解释就给了大家一个假象,我创建项目的时侯选择自动模式,然后我全部按以前server模式写代码,这样就能节约很多的时间。这样你的代码逻辑会非常清楚,而且万一你不想用blazor了,把前端换掉,后端不用重新写代码了。但在后台,Blazor 会将必要的资源下载到客户端,以便在下次加载时可以使用 WebAssembly 模式完成。
2024-06-13 07:59:16
660
原创 零基础直接上手java跨平台桌面程序,使用javafx(六)查询sqlite数据显示到TableView中
在hello-view的onMouseClicked里面填上“openclick2”,然后在HelloController写上openclick2的相关代码@FXML protected void openclick2() { }。:ResultSet 对象代表SQL查询的结果集,通常是通过执行 Statement 对象生成的。我们可以看到jdbc取数据的语句非常的简单,比c#的ado还要简单。:Statement 对象用于执行静态SQL语句并返回其生成的结果。
2024-06-12 08:31:05
407
原创 零基础直接上手java跨平台桌面程序,使用javafx(五)TableView显示excel表
在hello-view.fxml的文本中,要增加一些代码。在TableView定义中加上fx:id="TableView1",这样java代码才方便访问,在java代码中要加上@FXML private TableView TableView1;表示定义TableView1这个变量,它关联的是界面上的fx:id="TableView1"的控件。我们运行程序,打开一个电子表格,就能看到电子表中的内容了:样式有点丑,我们以后再调整。
2024-06-12 08:30:31
450
原创 零基础直接上手java跨平台桌面程序,使用javafx(四)用Apache POI读取excel文件。
打开项目,点文件|项目结构|模块|依赖|1从JAR或目录,选中"D:\java\jdk\poi-bin-5.2.3"包括子目录的全部JAR文件,并且把前面的勾打上,点应用和确定。我是嫌麻烦,把子目录的全拷到上面了,所以显示的是46个文件。1、下载Apache POI,本来是个很简单的事情,但是也有坑。这也就是我一直不敢用java的原因之一,这些莫名其妙的坑,总是让人烦躁。我们打开官网,发现他已经不发编译好的包了,发的是源代码。亏好我眼尖,在最下方,有5.23的老版,可以用一下。也没多老,还能接受。
2024-06-11 07:41:29
542
原创 零基础直接上手java跨平台桌面程序,使用javafx(三)添加控件并添加事件
正确的办法是,是在某个事件,比如我选择"on mouse clickd"里面写上“openclick1”,表示 我们这个事件的函数名称叫“openclick1”。但是它是红色的,标示我们还没有在代码里写这个函数。fxml它就是一个布局的文件,我们还得写这个文件的代码文件。我不习惯使用VBox,我来把它删除掉,重新添加“Borderpane”,然后我们在“Borderpane”的顶部添加一个pane,在pane里面添加两个按钮(pane里面的控件可以自由拖放位置,这个我很喜欢)。
2024-06-11 07:40:56
305
原创 直接用sql语句来查询和分析excel表,不需要导数据,提供了sql语句自动生成,不会sql也能用
今天我们要说的是直接用sql语句来查询和分析excel表。8、我们可以看到,很轻松就完成了对excel表格的sql查询,而且我们有个简单的sql向导,可以点点鼠标,sql语句就生成了。3、如果你想自己写sql呢,点“编辑sql”,手工输入sql语句,点“确定”就可以了。用sql语句来查询excel表,我们需要把excel表格导入到数据库中,然后用数据库的管理工具写sql语句来进行查询。1、点击菜单上的“工作表SQL”或者“SQL查询”,这两个功能的意思是查询当前工作表或查询所有工作表的意思。
2024-06-10 06:55:55
2319
原创 零基础直接上手java跨平台桌面程序,使用javafx(二)可视化开发Scene Builder
NetBeans有可视化工具,但是IntelliJ IDEA对于javafx,默认是没有可视化工具的。习惯用vs的朋友觉得,写界面还要是有一个布局工具就好了。左边是不是和vs的工具箱有点像,右边类似于属性和事件窗口。然后打开IntelliJ IDEA的设置,语言|框架|javafx,选择SceneBuilder的路径为你的安装路径。稍微有点不足的是,Scene Builder好像并没有提供官方的汉化功能,不过这无关紧要。我们只做实用的东西,不学习任何理论,如果你想学习理论,请去买几大本书,慢慢学去。
2024-06-10 06:54:09
318
原创 零基础直接上手java跨平台桌面程序,使用javafx(一)全环境搭建(OpenJDK 21,javafx22,IntelliJ IDEA 2024.1)和运行hello world
8、点“文件”--“项目结构”--“库”--“+”--“java”,然后你要选中你第2步下载的javafx的lib目录,比如我选的是“D:\java\jdk\javafx-sdk-22.0.1\lib”,点应用,点确定。10、打开src--main--java--com.example.demo--HelloApplication,点上方当前文件后面那个绿色的三角形运行。有的说明呢是老版的,已经不适用了。6、重新打开IntelliJ IDEA,点“新建项目”,点“javafx”,你需要选择位置和名称。
2024-06-09 06:26:42
541
原创 LibreOffice电子表格如何实现快速筛选并将结果放到新的工作表
多列数据的“或者”关系筛选。比如你在这里可以选择“姓名”=“张三“ 或者 ”性别“=”1“。在excel和wps中,你选两个列的条件,它就是”并且“的关系,做不到或者。在excel和wps中,你只有通过”高级筛选“来实现两个列的”或者“关系。如果是在excel或者wps中,可能大家都习惯了自动筛选,然后复制到新的工作表或者删除掉复制内容的办法。点“数据”-- “更多筛选”--“标准筛选”,在选完条件之后把下面的+号点开,点“复制结果到”,然后你选中新表的第一个单元格。
2024-06-09 06:25:52
350
原创 尝试使用blazor(二)Blazor WebAssembly(WASM)与Server之间有什么区别?
它们可以在ASP.NET Core(Blazor Server)中在服务器端运行,也可以在基于WebAssembly的.NET运行时在浏览器中在客户端运行(Blazor WebAssembly或Blazor WASM)。在服务器端托管模型(Blazor Server-Side)中,Blazor在ASP.NET Core应用程序内从服务器端执行。在客户端模型(Blazor WebAssembly)中,Blazor应用程序、其依赖项和.NET运行时会下载到浏览器中,并直接在浏览器UI线程上执行该应用程序。
2024-06-08 08:08:19
528
原创 尝试使用blazor(一)吐槽blazor,未开始之前,先吐为敬
基本上是真实的,可以说90%的代码,都可以用c#来解决掉,当然不包括css+html代码。原因之一:因为就前端本身来说,blazor其实是在纯前端的技术上加了一层c#,而不是用c#完全代替javascript。非常冷门,我刚用blazor遇到问题,花钱找人解决,找了国内几个著名的平台,几乎没人会blazor。再次,blazor生成的项目,在win中可以直接双击EXE文件就运行,连node.js和Nginx这些都省了,在linux中也只需要配置Nginx就能使用了,非常方便。就目前而言,答案是否定的。
2024-06-08 08:07:40
707
原创 excel的XLOOKUP的快速多列关联查询
原理:有几列需要关联查询,我们就写几个XLOOKUP的单列查询。这样的语句,比用&连接的语句效率要高非常多,100万条数据大概只需要30秒左右就计算出来了。我们前几章上面介绍了,根据某国产品牌官网介绍的使用&连接来进行多列关联查询,非常的慢。有没有公式可以快速进行XLOOKUP多列关联查询,我们找到了一个速度还可以的办法。这种IF(and(),,)或者IF(OR(),,)或者二者组合的模式,将单列查询变成多列查询,成为了一种可能。上面的公式,看起来有点吓人,我们用颜色做了区分。
2024-06-07 08:46:10
396
原创 excel数据透视表如何设置为标准二维表模式
选择“以表格形式显示”再点“重复所有项目标签”。“以表格形式显示”:这会将透视表转换成一种更接近标准二维表的格式,行标签将会连续显示,而不是错开。5、在“分析”“选项”的“汇总和筛选”页,去掉“总计”里的“显示行总计”和显示“列总计”。2、布局和样式: 在“设计”标签下,找到“布局”组,这个组中有一个“报表布局”按钮。6、在“分析”“选项”的“显示”页,去掉“显示显示展开/折叠按钮”。4、点“设计”“分类汇总”更改“分类汇总”为“不显示分类汇总”1、选择“设计”标签: 在“透视表工具”中,点击“设计”。
2024-06-07 08:45:45
248
原创 点击式的excel电子表格查找修改功能,比xlookup和vlookup简单,多列关联查询速度更快
3、在出现的界面选择表为“sheet2”,选择列为“民族”,表示我们要把“sheet1”的“民族”这一列改成“sheet2”的“民族”这一列。表示我们的查询条件是“sheet1”的“姓名” 等于 “sheet2”的“姓名”。那现在就成了两个关联条件:“sheet1”的“姓名” 等于 “sheet2”的“姓名” 且 “sheet1”的“性别” 等于 “sheet2”的“性别”两个工作表按姓名关联查询,把“sheet1”的“民族”这一列改成“sheet2”的“民族”这一列。
2024-06-06 09:11:22
1248
原创 excel表的xlookup,一看就会的办法。另尝试多列关联查询
A$2:$A$272181),出现结果是正确的。B2:B10),表示要从Sheet2表的“身份证”这一列查,查找“A2”,返回“姓名”B 这一列的对应值。定好B2的单元格公式之后,右键复制或者ctrl+c复制,然后选中B3,拖动右边的滚动条到表的最后,按下shift不放,选中最后一个单元格,放开shift键。测试场景:用“人员姓名”和“证件号码”查找“Sheet4表”(272181行)的“姓名”列,填充到“Sheet1”表的空白列中。=xlookup(要搜索的值, 搜索的范围,返回的范围)。
2024-06-06 07:35:20
784
原创 一键导入excel电子表格到mysql,一次导入100个100万行的电子表,合并导入到一张数据库表里面。
那你说我不需要这个功能,我分表导入数据库,然后我写sql语句合并在一起就完事了。我以前也一直是这样处理的。几个表或者十多个表合并成一个表,我们写sql,忍忍也就过去了。1、我们打开hpctb,双击第一个页面“数据库查询”,点击“电子表格导入数据库”。出现选择电子表格的对话框,我们选中一个或多个电子表格文件,点“打开”。3、点“选择导入的目标”,选“mysql”,输入服务器名称,用户名和密码,选择数据库,点完成。5、就这样,你就把多个excel文件合并导入到mysql了,总共导入1亿多行数据。
2024-06-05 09:22:41
412
原创 百万级表格实测,excel是时侯使用XLOOKUP了,比VLOOKUP简单、不出错、快
A$2:$A$272181),出现结果是正确的。$B$2:$B$272181,1,FALSE),这样是能出来结果了。然后我们把这个公式粘贴到这一列的全部单元格中,共883740行,特别慢,我没有等待它结束,强制关闭掉了。$A$2:$B$272181,1,FALSE),这个公式并没有找到数据,出现的是“#N/A”。这个很奇怪,我在有的表,用这样的范围查找,是可以出现正确结果的。使用场景:用“证件号码”查找“Sheet4表”(272181行)的“姓名”列,填充到“Sheet1”表的空白列中。
2024-06-05 08:38:19
645
原创 一键导入excel电子表格到sqlite,一次导入100个100万行的电子表,合并导入到一张数据库表里面。
那你说我不需要这个功能,我分表导入数据库,然后我写sql语句合并在一起就完事了。几个表或者十多个表合并成一个表,我们写sql,忍忍也就过去了。1、我们打开hpctb,双击第一个页面“数据库查询”,点击“电子表格导入数据库”。出现选择电子表格的对话框,我们选中一个或多个电子表格文件,点“打开”。3、点“选择导入的目标”,选“sqlite”,选择“所有文件”并选中sqlite的库文件,点“打开”,点完成。5、就这样,你就把多个excel文件合并导入到sqlite了,总共导入1亿多行数据。
2024-06-04 09:42:37
441
原创 因为使用.net技术,而成为被告
虽然这个判决,最后是“依法不应予以立案,驳回某某公司的起诉。”但是就这个把.net技术当国家禁用技术体系,完全不支持信创,作为正式起诉内容。这个事情,很震惊,超出了认知范围,我不知道该说些什么。公司医院软件产品都基于美国微软.net技术体系开发,属于国家禁用技术体系,完全不支持信创“等问题进行了回复。前两天在“中国裁判文书网”上面看到了一个行政裁定书,其中有一段很有趣:“
2024-06-04 09:00:52
182
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人