用XML操作Excle文件。

python3数据处理(一)-- 解析XML,Excle文件 读取XML结构本文用xml.etree包from xml.etree import ElementTree as ET#parse返回一个python对象 tree = ET.parse('C:/Users/elenawang/Documents/data/datatext.xml') #获得树(tree)的根元素 root = tree.getroot() print(root)#<Element 阅读详情

 用XML操作Excle文件

 

 

 

在项目中有时候需要将数据输出到Excle,办法很多,比如说用ADO,但是这些都不能满足性能上的要求,如果你将10W条数据用ADO方式写入数据库,速度是很慢的。而且还不能对生成的Excle设置格式。

一个偶然的机会,我发现将Excle档保存为XML(表格),然后用记事本打开就会发现,整个文件就是一个XML数据.对这个文件进行操作还能得到复杂的效果,比如:合并单元格,字体,颜色,甚至是为单元格设置公式。

 

比如这样的:

效果图

 


 

一些值得注意的地方:

一 .文件头部有以下信息:

 
 其中,一下几个部分可以修改,其意思很简单,懂点E文就知道了.

 
二 .接下来你将看到<Styles>部分,大概就像这样:
 

 
  <Styles>部分定义了一个样式的集合,每一种样式都在<Style></Style>中描述,我的理解是,每 一个样式都是代表了一个单元格的形态,注意是一个,能不能在一个单元格上组合多个此处定义的样式,还没测试.在<Style>中:
  ss:ID        定义该样式的名称,要使用一个样式的时候需要用到.
  <Borders><Borders/> 这个东西就说明当前单元格的四个边的样式(有没有线条?线条多粗..)
  Font        定义单元格上文字的样式
  Interior: 指的是底色,ss:Color用于描述颜色,ss:Pattern 描述如何绘制
 
三 .数据部分
在这部分,你会看见类似这样的内容:


说明:   
<Worksheet ss:Name="Sheet1">   
这里说明有一个叫做Sheet1的表单


<Table ss:ExpandedColumnCount="9" ss:ExpandedRowCount="6" x:FullColumns="1"
   x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25">
对于这个表单的总体数据描述:
ss:ExpandedColumnCount="9"   数据表格有9列  
ss:ExpandedRowCount="6"      数据表格有6行
后面的就是设置一些默认属性,如果你在后面具体的表格上没有指定样式,就会用到这些.


<Column ss:AutoFitWidth="0" ss:Width="50.25"/>
依次定义ss:ExpandedColumnCount个列的宽和高

接下来就是数据部分了,完整的一行大概是这样的:

 <Row ></Row>部分描述的这一行的默认属性,它也可以指定样式,比如<Row ss:AutoFitHeight="0" ss:StyleID="s22">,这样的话,在这一行上面,任何没有特殊指定样式的表格都是这个默认样式.
 <Cell><Cell/>部分描述具体一个表格的样式,必须使用前面你已经定义好的<Style>.
 
四 .数据尾部

就是这个样子:


 这些一般用处不大,没有仔细研究.

 

 

其他:在程序中可以用TinyXML来操作XML,另外还有编码问题要考虑,文件保存为*.xml,你发现即使安装的Excle,这个问默认的打开方式可能也不是Excle,有个技巧,将你文件的头部插入2 个字节,内容为[0xFF,0xFE].

Java 实现Excle表转成XML格式 如何读取和写入xml文件? Java 实现Excle表转成XML格式 阅读详情

相关推荐

快速生成XML文件的Excel驱动工具

XML(Extensible Markup Language)即可扩展标记语言,是一种用于存储和传输数据的标记语言。它允许开发者定义自己的标签,并将文档结构化为树状层次结构。与HTML不同,XML不定义固定的标签,它提供了一种灵活的方式来描述信息,这使得XML成为数据交换的理想格式。虽然XML相较于轻量级的数据交换格式如JSON稍显复杂,但在需要复杂结构化数据的场景下,它的优势就显得尤为突出。接下来的章节将带领大家逐步了解XML的结构,如何构建一个下拉框的XML表示,以及如何通过工具生成和优化XML文件。

weixin_35950531的博客 1089

ASP程序快速生成Excel文件

ASP程序快速生成Excel文件 在一个web项目中,要求将数据生成Excel文件保存到本地,最早使用的方法是直接使用Microsoft的Office Web组件,但是总体感觉是慢(微软的通病)。然后使用SQL SERVER语句直接生成excel文件,速度是快了,但是标题等信息还需要再打开一次生成的文件进行修改,还有一个更重要问题就是当查询比较复杂的时候,就很难处理。后来又想用csv格式,但是存在

黄灯桥的专栏 4348

OpenXML读写excel方法

OpenXML读写excel方法,如可以修改格式以及添加值到单元格,仅提供读写Excel的类,只需调用其中方法就可以

用XML操作Excel文件的一些属性说明

在利用velocity导出excel中遇到了一个坑,理论上讲是没有问题的,看了vm文件也没有问题,但是打开生成的vm文件时会提示文件已损坏。 经研究,Excel在生成xml的时候为了不浪费资源,在生成时候,会指定Excel有多少行,如果超出了这个长度的话,它就会编译不通过并报错,也就是遇到的这个问题。 解决方法: 修改它的属性值"ss:ExpandedRowCount",把它设置大一点,或者通过程...

VicterTian的博客 4224

利用xml配置文件和Excel模板,导出标准Excel(单sheet多sheet都可以)

利用xml配置文件和Excel模板,导出标准Excel(单sheet多sheet都可以) 目前还存在发布到iis上下载后不能结束EXCEL进程的问题

Protege新手必看:从安装到建模的完整指南(附推理功能详解)

本文为Protege新手提供从安装、配置到核心建模的完整实战指南。详细讲解了Java环境准备、本体项目创建、类与属性定义、个体填充等关键步骤,并重点解析了推理功能的配置与使用,帮助读者快速构建可逻辑推理的知识图谱,避开常见陷阱。

numpy6sculptor的博客 797

CSS的基础

我们需要修改 color 属性值。 以下是将 h2 元素设置为蓝色的方法: <h2 style="color: blue;">CatPhotoApp</h2> 请注意,需要在内联 style 声明末尾加上 ;。 这是指定元素样式的一种方法,但有一个更好的方法来应用 CSS。 在代码的顶部,创建一个 style 声明区域,如下方所示: <style> </style> 在样式声明区域内,可以为所有 h2 ...

likellzzyy的博客 608

用AG9311芯片DIY一个多功能Type-C扩展坞:从原理图到PCB布局的保姆级指南

本文详细介绍了如何利用AG9311芯片DIY多功能Type-C扩展坞,涵盖从原理图设计到PCB布局的全过程。AG9311芯片作为高性价比的Type-C控制器,支持HDMI 2.0、USB 3.0、PD快充和千兆网口,适合硬件爱好者打造个性化扩展坞。文章还提供了调试技巧和进阶优化建议,帮助读者轻松完成项目。

weixin_42520909的博客 404

Java freemaker中导出excel,格式错乱解决方案

当使用freemaker导出excel,遇到很复杂的模板,比如文字是竖向的,模板是好的,但生成的excel打开格式就乱了,需要使用:     测试 ${honourDateOne})          原来的竖向是这样的形式,会导致格式错乱,显示到一行去:

你好邱林和的专栏 3249

RT-Thread 5.1.0 实战:手把手教你用CubeMX和RT-Studio创建第一个工程(附常见编译错误修复)

本文详细介绍了如何使用STM32CubeMX和RT-Thread Studio 5.1.0创建第一个RT-Thread工程,包括开发环境准备、CubeMX配置、工程整合及常见编译错误修复。通过实战指南,帮助开发者快速上手RT-Thread 5.1.0,解决开发过程中的典型问题,提升嵌入式开发效率。

weixin_29165465的博客 285

LLM评测框架Ragas:测试RAG的性能出现TimeoutError()的解决办法(Ragas+langchain+ollama)

无奈之下,自己找到了一个解决办法,在ragas支持的llm类库中加了一个如下的类,支持ollama、langchian_ollama使用ragas测试报错的问题。可以将如上的库放到你的ragas的系统库的llms目录下,然后修改__init__.py如下。最近用ragas测试rag的性能,发现老出现TimeoutError()的错误。这是一个临时的解决办法,具体等待官方给出最终的解决方案。后来发现官方也没有尽快支持的计划。然后就可以用如下代码进行一些验证。

Criss@陈磊 666

如何优雅地生成那些花里胡哨的复杂样式 Excel 文件?

点击蓝色“小哈学Java”关注我哟加个“星标”,第一时间获取小哈推送的文章哦!目录一、背景二、实现思路三、快速上手四、多行数据如何生成?五、局限性六、总结一、背景小哈最近...

犬小哈 1230

基于STM32L4XX 、HAL库的ATD5984步进电机驱动器驱动程序应用设计

一、简介: ATD5984是一款内部集成了译码器的微特步进电机 驱动器,能使双极步进电机以全、半、1/4、/1/8、1/16 和1/32步进模式工作。步进模式由逻辑输入管脚MSx选 择。其输出驱动能力达到28V±1.6A。 译码器是ATD5984易于使用的关键,通过STEP管脚 输入一个脉冲就可以使电机完成一次步进,省去了相序 表,高频控制线及复杂的编程接口,使其更适于没有复 杂的微处理器或微处理器负担过重的场合。 在步进操作期间,ATD5984的内部电路可以自动

PP_Cottage的博客 406

用XML操作Excle文件

 在项目中有时候需要将数据输出到Excle,办法很多,比如说用ADO,但是这些都不能满足性能上的要求,如果你将10W条数据用ADO方式写入数据库,速度是很慢的。而且还不能对生成的Excle设置格式。 一个偶然的机会,我发现将Excle档保存为XML(表格),然后用记事本打开就会发现,整个文件就是一个XML数据.对这个文件进行操作还能得到复杂的效果,比如:合并单元格,字体,颜色,甚至是为单元

shandianailin的专栏 512

STM32F103(二十三)通用同步异步收发器(USART)

学习板:STM32F103ZET6 往期博客: STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结 STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置 STM32F103五分钟入门系列(三)GPIO的常用库函数使用方法总结+一个网络上的误区 STM32F103五分钟入门系列(四)蜂鸣器实验(库函数+寄存器) STM32F103五分钟入门系列(五)按键实验(库函数+寄存器) STM32F103五分钟入门系列(六)时钟框图+相关寄存器

Curnane0_0的博客 1019

构建AI招聘助手:提高人才筛选与匹配效率

人工成本高:传统招聘过程涉及大量的简历筛选和面试安排,需要耗费大量的人力和时间。匹配效率低:简历筛选过程中,人为因素可能导致信息遗漏或误判,影响匹配效果。招聘周期长:从职位发布到最终录用,传统招聘流程往往耗时较长,影响企业业务发展。机器学习(Machine Learning)是一门让计算机通过数据和经验来学习并改进性能的学科。自然语言处理(Natural Language Processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向,旨在让计算机能够理解和解释人类语言。

AI天才研究院 1305

python中列表合并后结果没问题,但是输出成excle总是出错

python中列表合并后结果没问题,但是输出成excle总是出错 TypeError: got invalid input value of type <class ‘xml.etree.ElementTree.Element’>, expected string or Element

wlliulangren的博客 384

通过miniconda conda安装jupyer的时候报错: InvalidArchiveError(“Error with archive

摘要:本文针对Windows系统使用Conda时出现的InvalidArchiveError错误(文件路径过长或压缩包损坏),提供了解决方案。建议以管理员身份运行PowerShell并执行命令启用长路径支持(LongPathsEnabled),然后重启电脑或终端。作者通过该方法成功解决了jupyter安装问题。附有错误截图和解决后的成功截图。

猿小白的博客 786

excle转xml文件

1.excle表格数据不要出现合并单元格的数据,这会影响转换后的数据 2.些xml格式模板,如: 3.如果要转多条数据,xml节点应该至少有2个 4.打开excle文件,点击“开发工具”,这时“导出”按钮是不可用的,再点击“xml”中的“源”,右边会出现如下窗口 点击“XML映射”,选择之前创建好的xml模板,这时右边会出现节

qq_30879767的博客 438

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

python xml转excle

<?xml version="1.0" encoding="UTF-8"?> <RECORDS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ZZZSYBQ> <RQ>R1</RQ> <YBZMC>Y1</YBZMC>...

weixin_30765319的博客 152

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

poi进行excle操作

poi进行excle操作 一 excle导出: 所需要jar包 &lt;dependency&gt; &lt;groupId&gt;org.apache.poi&lt;/groupId&gt; &lt;artifactId&gt;poi&lt;/artifactId&gt; ...

maxchenBug的博客 209

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Excle使用VBA导出为XML格式

Private Sub ToXML() '定义所需类型 Dim Filename As Variant Dim TDOpenTag As String Dim CellContents As String Dim Rng As Range Dim r As Long, c As Integer '定义保存名称和类型 Filename = Application.GetSaveAsFilename( _ InitialFileName...

沈越的博客 1336

android String.xml转excle sublime操作

在find框填上正则表达式<string name="(.*)">(.*)</string> 在“替换为”框中输入$1或$2,然后点击“全部替换”按钮即可(注意查找模式要勾选“正则表达式”)。如下图所示 这样就可以筛选id和对应的文字了 删除空行正则表达式\s+$ 在“替换为”框中输入空 ...

weixin_41012767的博客 180

magento下生成excle文件方法

注意,这种方法本质上是生成xml文件,但excel是能打开这种xml格式,以下是一个demo: $data=array( array('name','birthday'), array('tom','1985'), array

曾健生的专栏 1218

html/xml转excle

最近公司项目,要实现各种导出Excle,各种开源组件都使用过,其中用过COM组件Excel,NPOI,MyXls,OLEDB.其中效率最佳的是OLEDB,但是有得必有失,样式不能保留,NPOI操作Excle2007有问题,COM组件样式能保留,但是效率不佳(最烦的是各种进程驻留后台,不管是quit()还是dispose()都还有).后来几个同事讨论了下,既然Office保存时可以选择保存为HTML

u011964241的专栏 324

poi创建excle

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。相关功能:   HSSF - 提供读写Microsoft Excel格式档案的功能。   XSSF - 提供读写Microsoft ExcelOOXML格式档案的功能。   HWPF - 提供读写M...

weixin_30699463的博客 90
上一篇: ASIO与BOOST::ASIO的不同之处
下一篇: Visual Leak Detector(VLD) 更新到1.9h
BeRoy
博客等级 码龄24年 33粉丝 19原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值