首页 文章 精选 留言 我的

精选列表

搜索[富文本组件],共10000篇文章
优秀的个人博客,低调大师

Java读取Excel并解析文本(并格式化输出)

说明 最近在做一个比较小型的Java网站,需要批量导入注册用户.用户的信息写在一张excel表格里面. 所以就需要读取excel.所以就记录下遇到的问题,以及以后查看. 相关技术 使用的POI解析Excel需要使用的jar包 注(使用的maven.我就添加了右边的两个依赖就可以了) 分析 解析Excel首先就要解析Excel的结构.然后用面向对象的思想分析一下 这是一个excel文件.下面我们就来分析一下如果让你写这个poi框架,那么你会怎么设计. 1. 首先要有一个对象表示这整个Excel文件. 2. 可是这个excel文件中有好多页.Sheet1, Sheet2等等,所以我们还需要一个对象表示页. 3. 在页中,有行,所以还需要一个对象表示行. 4. 在行中,最后细分到格cell. 5. 格cell中数据还有好多类型.有字符串,数字,时间等等. POI中的对象与excel对象的对应 excel文件就有多种类型了.后缀有 xls 与 xlsx 所以对于不同类型的文件,就需要使用不同的poi中的对象了. 1. 如果你要解析的是xls文件 从代码不难发现,这里的处理逻辑是 1>. 先用inputstream获取excel文件的io流 2>. 然后创建一个内存中的excel文件HSSFWorkbook类型对象.这个对象表示了整个excel文件. 3>. 对这个excel文件的每页做循环处理 4>. 对每页中的每行做循环处理. 5>. 对每行中的每个单元格做做处理,获取这个单元格的值. 6>. 把这行的结果添加到一个List数组中. 7>. 把每行的结果添加到最后的总结果中. 8>. 解析完以后就获取了一个List< List < String > > 类型的对象了. 2. 如果你要处理xlsx类型的文件则 和上面一样,我就不说了. 存在的问题 其实有时候我们希望得到的数据就是excel中的数据,可是最后发现结果不理想 如果你的excel中的数据是数字,你会发现java中对应的变成了科学计数法的. 所以在获取值的时候就要做一些特殊处理. 这样就能保证获取的值是我想要的值. 网上的做法是对于数值类型的数据格式化,获取自己想要的结果. 其实也没有那么麻烦.我在做的时候突然想到了一种处理解决方案.供参考 我们看一下poi中对于的toString()方法 该方法是poi的方法,从源码中我们可以发现,该处理流程是 1. 获取单元格的类型 2. 根据类型格式化数据并输出.这不一下子就造成了很多不是我们想要的. 所以我们就要改造一下这个方法例如这样 我的做法是这样的 1. 对于不熟悉的类型,或者为空则返回”” 控制串. 2.如果是数字,则修改单元格类型为String,然后返回String.这样就保证数字不被格式化了. 3. 虽然不知道这么做有什么后果,可是成功了. 原文地址http://www.bieryun.com/547.html

优秀的个人博客,低调大师

【干货】用朴素贝叶斯进行文本分类

1.引言 贝叶斯方法是一个历史悠久,有着坚实的理论基础的方法,同时处理很多问题时直接而又高效,很多高级自然语言处理模型也可以从它演化而来。因此,学习贝叶斯方法,是研究自然语言处理问题的一个非常好的切入口。 2. 贝叶斯公式 贝叶斯公式就一行: 而它其实是由以下的联合概率公式推导出来: P(Y,X)=P(Y|X)P(X)=P(X|Y)P(Y) 其中P(Y)叫做先验概率,P(Y|X)叫做后验概率,P(Y,X)叫做联合概率。 额,恩,没了,贝叶斯最核心的公式就这么些。 3. 用机器学习的视角理解贝叶斯公式 在机器学习的视角下,我们把X理解成“具有某特征”,把Y理解成“类别标签”(一般机器学习问题中都是X=>特征,Y=>结果对吧)。在最简单的二分类问题(是与否判定)下,我们将Y理解成“属于某类”的标签。于是贝叶斯公式就变形成了下面的样子: 我们

优秀的个人博客,低调大师

Spark机器学习8· 文本处理(spark-shell)

Spark机器学习 自然语言处理(NLP,Natural Language Processing) 提取特征 建模 机器学习 TF-IDF(词频 term frequency–逆向文件频率 inverse document frequency) 短语加权:根据词频,为单词赋予权值 特征哈希:使用哈希方程对特征赋予向量下标 0 运行环境 tar xfvz 20news-bydate.tar.gz export SPARK_HOME=/Users/erichan/Garden/spark-1.5.1-bin-hadoop2.6 cd $SPARK_HOME bin/spark-shell --name my_mlib --packages org.jblas:jblas:1.2.4-SNAPSHOT --driver-memory 4G --exec

优秀的个人博客,低调大师

「钞能力养成指北」前传:开发者开年变富,如何迈出第一步?

写在前面 : 面对全面放开后多样的消费机会,开发者们如何在保障品质生活的同时,借助开源工具,全面、科学地规划和管理个人财务,把握资金动向,避开消费陷阱? LigaAI特邀我司Nerd4me 大佬分享其个人财务管理经验,系列共分「概念篇」和「实战篇」。本篇「概念篇」,将详细介绍复式记账法的基本框架。 一、为什么要记账? 关于「为什么要记账?」,常见回答有这些: 掌控收支情况,以便更好地制定理财计划; 单纯地作为一种生活记录,以承载记忆; 希望通过记账,改变或调整消费习惯; 鼠鼠穷,希望通过记账寻找可削减的开支; 在我看来,记账所带来的好处远不止这些。记账能让我们更清晰宏观地了解自身的财务状况,通过合理的财富资源配置(让钱去该去的地方),更好地应对/规避风险,规划投资行为 。 一个维护良好的账本能够生成许多有用的账务报表,其中最有用的两个是: 损益表- Income Statement: 周期性地审阅损益表有助于了解周期时间内的资金流向和盈亏情况。也就是我们常说的:钱从哪来?到哪去?亏了还是赚了? 资产负债表 -Balance Sheet:用于呈现我们拥有多少钱 ? 钱分布在哪里? 想要更好地维护账本,我们需要采用一种更科学的记账方式——复式记账法。 二、图论 & 复式记账法 「有借必有贷,借贷必相等」 是复式记账法最出圈的口诀。它反映了用复式记账法记录的每一条帐目,至少会与两个交易账户和一条交易同时出现。 如果将「账户」视为「节点」,「交易」看做「有向边」,所有账目都可以被抽象成含若干个节点和有向边的「有向图」,其中有向边的方向是资金的流动方向。 这就是 Martin Kleppmann 大神在Accounting for Computer Scientists中提出的理论。本文将围绕「账簿与图论」揭开复式记账法的神秘面纱。 👉 账户 = 节点,交易 = 有向边 老王准备开一个煎饼摊,获得了老婆提供的 5,000 元启动资金支持(转入银行卡)。 他先花 1,000 元(银行卡支付)购买煎饼设备,又花 500 元(信用卡付款)采购煎饼材料,最后用银行卡支付了 250 元的信用卡账单。 老王按照「账户 = 节点,交易 = 有向边」的原则,将交易过程抽象成有向图。虽然节点的名称不太符合会计规范,但有向边的方向严格遵循交易逻辑,即资金永远从一个节点指向其他节点。 👉 标记并更新账户余额 在会计学中,每个账户都有余额(Balance),而余额的多少完全由进出账户的交易决定。 账户余额有两个特性在账目准确性的检查方面,非常有用;若违反了其中任何一条,都能说明账目有问题。它们分别是: 笔交易会同时关联两个账户(进账和出账),其余额此消彼长,所以图中节点的余额之和始终为 0; 所有节点分成两个不相交的子集,子集的余额之和互为相反数。 👉 经营煎饼摊 老王将自己做的账簿图给老婆看。她修改了一些的专业术语,比如将「启动资金」改成「实收资本」。 同时,王嫂指出「煎饼设备」的入账方式不对,应该将设备的使用损耗考虑进来,将采购费用分 4 年折旧,因为四年内老王可能将设备转让出去。 煎饼摊每天的生意都很火爆,经过计算目前已挣得收入 5,000 元。同时,老王对煎饼设备进行改造,并成功申请了专利;设备工厂决定以 10 元/台的价格,购买改良版设备的专利使用权,并为第一批生产计划的 500 台设备预付了 2,500 元。 另外,老王的朋友看生意不错,也注资了 25,000 元;他终于可以给自己发工资了。 👉 如何将图转换成「财务报表」? 老王煎饼摊的故事先讲到这。交易抽象成有向图后,我们如何根据图中的信息,生成损益表和资产负债表? 01 分类处理 首先,对图中的节点进行分类、着色处理,使用不同颜色标记不同的含义。 🟢 绿色表示拥有的东西即资产(Assets) ,例如银行存款、现金或者已经买了且将来可能折旧卖出的东西,就像老王的「煎饼设备」。 另外,要收回来/还回去的欠款 ,也应做绿色标记。其中,欠你钱的企业/个人称为债务人(Debtors),你为债权人(Creditors);而你要还的钱为负债(Liabilities)。 🔵 蓝色表示销售产品或知识产权转让的收入(Income)和花出去且永远不会再回来的钱(花费,Expenses) 。购买煎饼设备的费用是绿色的,因为它还能以「设备」形态再次卖出;而食材买回来做成煎饼就没了,因此是蓝色的。 🌸 粉色表示来自 投资者或自己的钱,即权益(Equity) 。 02 损益表 损益表反映了一定时间内的利润实现情况,也是关于图中蓝色节点的财务报表。 将图中所有蓝色节点的余额相加,若值为负数,说明煎饼摊「盈利 Profit」,其绝对值为煎饼摊的「净利润 Net Profit」;若值为正数,则代表经营「亏损 Loss」,其绝对值为「净亏损 Net Loss」。 将蓝色节点的信息整理成下图所示的会计学标准格式。为了易于理解,这里对收入余额取绝对值。 损益表指出,老王靠销售煎饼和专利转让获得了 10,000 元的收入,产生了 8,750 元的花费,所以煎饼摊的净利润为 1,250 元。 「损益表」的统计和分析常以月、季度或者年为单位。 通过对比不同时期的数额变化与账户增减,我们可以更全面地了解收支明细,调整开支项目,评估或预测未来的收支水平。 需要注意的是,由于债务人的存在,「盈利」不能代表「银行账户」的余额增加。 这也是为什么一些财报呈现盈利的企业,最终会因资金流紧张(账上没钱)而无法良好运转。 03 资产负债表 资产负债表,又称财务状况表,用于揭秘资产、负债、权益的金额明细和分布状态。 前文提到,将图中所有节点分成任意两个不相交的集合,集合的账户余额之和为 0 ——这正是资产负债表的由来。 将蓝色节点(收入和花费,即损益值)和粉色节点(权益)分为一类,其余额之和应与绿色节点(资产和负债)的余额之和互为相反数。 老王煎饼摊的资产负债表如下,此处数额同样做了绝对值处理。 三、参考资料 [1] 复式记账法,又称为复式簿记(Bookkeeping),是商业及其他组织上记录金融交易的标准系统。 [2] 图论是研究事物之间关系的科学。万事万物皆有千丝万缕的联系,而任何有联系(联接)的事物都可以抽象成图结构,以便展开全面而强大的分析,包括但不仅限于分析节点影响力、寻找关键路径、预测发展情况等等。 [3] Martin Kleppmann 是剑桥大学「分布式」系统研究人员,著有Designing Data-Intensive Applications一书。 编者语:# 编程之外是 LigaAI 开设的全新栏目。在这里,我们将与开发者朋友们一起发现和分享生活中的「技术时刻」,并通过极具创意与实用的「生活代码」,感受「技术改善生活」的真谛。如果你也对「代码提升幸福感」感兴趣,欢迎关注 LigaAI 帐号。 LigaAI 是新一代智能研发协作平台,我们关注研发协作与效率,重视开发者个人的价值创造。往期文章中,我们分享了许多敏捷开发、项目管理、个人成长与提升的文章,欢迎朋友们阅读交流。 体验新一代智能研发协作,请 点击这里 展开了解。LigaAI 助力开发者扬帆远航,期待与你一路同行!

优秀的个人博客,低调大师

Tremor —— 模块化组件 React 库

Tremor 是一个快速构建仪表板的 React 库,完全开源,由数据科学家和软件工程师打造。 入门 对于新项目,官方建议使用 Next.js 13.4+,要使用该库,还需要在项目中设置 Tailwind CSS。 使用 NextJS 在终端中,我们会创建一个新的 Next 项目,当提示 Would you like to use Tailwind CSS with this project?时,选择 Yes. npx create-next-app@latest my-project cd my-project 使用 Tremor CLI 安装 建议使用我们的 CLI 安装 Tremor。 为此,请运行此命令并选择 Next 作为你的框架。 npx @tremor/cli@latest init 现在你已经设置好了,就可以启动开发服务器了。 npm run dev

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册