解决excel2007文件使用excel2003打开文件格式不兼容问题

Excel文件无法打开?解决“文件格式或文件扩展名无效”问题 通过初步检查文件本身是否损坏和扩展名是否匹配,以及通过修改注册表、关联Excel程序、更新或修复Office安装、检查文件权限和使用Excel的“打开和修复”功能等方法,我们往往能够找到并解决问题的根源。在使用Excel软件处理数据时,我们有时会遇到一种棘手的情况:尝试打开一个Excel文件,但系统却提示“文件格式或文件扩展名无效”。如果初步检查确认文件本身没有问题,那么我们可以尝试通过修改注册表来解决“文件格式或文件扩展名无效”的问题。这包括两个方面:一是文件没有损坏,二是文件的扩展名与文件格式匹配。 阅读详情

public void ExportToExcel(DataSet source, string fileName)
        {
            System.IO.StreamWriter excelDoc;
            excelDoc = new System.IO.StreamWriter(fileName);
            const string startExcelXML = "<xml version>/r/n<Workbook " +
                      "xmlns=/"urn:schemas-microsoft-com:office:spreadsheet/"/r/n" +
                      " xmlns:o=/"urn:schemas-microsoft-com:office:office/"/r/n " +
                      "xmlns:x=/"urn:schemas-    microsoft-com:office:" +
                      "excel/"/r/n xmlns:ss=/"urn:schemas-microsoft-com:" +
                      "office:spreadsheet/">/r/n <Styles>/r/n " +
                      "<Style ss:ID=/"Default/" ss:Name=/"Normal/">/r/n " +
                      "<Alignment ss:Vertical=/"Bottom/"/>/r/n <Borders/>" +
                      "/r/n <Font/>/r/n <Interior/>/r/n <NumberFormat/>" +
                      "/r/n <Protection/>/r/n </Style>/r/n " +
                      "<Style ss:ID=/"BoldColumn/">/r/n <Font " +
                      "x:Family=/"Swiss/" ss:Bold=/"1/"/>/r/n </Style>/r/n " +
                      "<Style     ss:ID=/"StringLiteral/">/r/n <NumberFormat" +
                      " ss:Format=/"@/"/>/r/n </Style>/r/n <Style " +
                      "ss:ID=/"Decimal/">/r/n <NumberFormat " +
                      "ss:Format=/"0.0000/"/>/r/n </Style>/r/n " +
                      "<Style ss:ID=/"Integer/">/r/n <NumberFormat " +
                      "ss:Format=/"0/"/>/r/n </Style>/r/n <Style " +
                      "ss:ID=/"DateLiteral/">/r/n <NumberFormat " +
                      "ss:Format=/"mm/dd/yyyy;@/"/>/r/n </Style>/r/n " +
                      "</Styles>/r/n ";
            const string endExcelXML = "</Workbook>";
            int rowCount = 0;
            int sheetCount = 1;
            #region -- 格式 --
            /*
           <xml version>
           <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
           xmlns:o="urn:schemas-microsoft-com:office:office"
           xmlns:x="urn:schemas-microsoft-com:office:excel"
           xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
           <Styles>
           <Style ss:ID="Default" ss:Name="Normal">
             <Alignment ss:Vertical="Bottom"/>
             <Borders/>
             <Font/>
             <Interior/>
             <NumberFormat/>
             <Protection/>
           </Style>
           <Style ss:ID="BoldColumn">
             <Font x:Family="Swiss" ss:Bold="1"/>
           </Style>
           <Style ss:ID="StringLiteral">
             <NumberFormat ss:Format="@"/>
           </Style>
           <Style ss:ID="Decimal">
             <NumberFormat ss:Format="0.0000"/>
           </Style>
           <Style ss:ID="Integer">
             <NumberFormat ss:Format="0"/>
           </Style>
           <Style ss:ID="DateLiteral">
             <NumberFormat ss:Format="mm/dd/yyyy;@"/>
           </Style>
           </Styles>
           <Worksheet ss:Name="Sheet1">
           </Worksheet>
           </Workbook>
           */
            #endregion

            excelDoc.Write(startExcelXML);
            excelDoc.Write("<Worksheet ss:Name=/"Sheet" + sheetCount + "/">");
            excelDoc.Write("<Table>");
            excelDoc.Write("<Row>");
            for(int x = 0; x < source.Tables[0].Columns.Count; x++)
            {
                excelDoc.Write("<Cell ss:StyleID=/"BoldColumn/"><Data ss:Type=/"String/">");
                excelDoc.Write(source.Tables[0].Columns[x].ColumnName);
                excelDoc.Write("</Data></Cell>");
            }
            excelDoc.Write("</Row>");
            foreach(DataRow x in source.Tables[0].Rows)
            {
                rowCount++;
                //if the number of rows is > 64000 create a new page to continue output
                if(rowCount==64000)
                {
                    rowCount = 0;
                    sheetCount++;
                    excelDoc.Write("</Table>");
                    excelDoc.Write(" </Worksheet>");
                    excelDoc.Write("<Worksheet ss:Name=/"Sheet" + sheetCount + "/">");
                    excelDoc.Write("<Table>");
                }
                excelDoc.Write("<Row>"); //ID=" + rowCount + "
                for(int y = 0; y < source.Tables[0].Columns.Count; y++)
                {
                    System.Type rowType;
                    rowType = x[y].GetType();
                    switch(rowType.ToString())
                    {
                        case "System.String":
                            string XMLstring = x[y].ToString();
                            XMLstring = XMLstring.Trim();
                            XMLstring = XMLstring.Replace("&","&");
                            XMLstring = XMLstring.Replace(">",">");
                            XMLstring = XMLstring.Replace("<","<");
                            excelDoc.Write("<Cell ss:StyleID=/"StringLiteral/">" +
                                "<Data ss:Type=/"String/">");
                            excelDoc.Write(XMLstring);
                            excelDoc.Write("</Data></Cell>");
                            break;
                        case "System.DateTime":
                            //Excel has a specific Date Format of YYYY-MM-DD followed by 
                            //the letter 'T' then hh:mm:sss.lll Example 2005-01-31T24:01:21.000
                            //The Following Code puts the date stored in XMLDate
                            //to the format above
                            DateTime XMLDate = (DateTime)x[y];
                            string XMLDatetoString = ""; //Excel Converted Date
                            XMLDatetoString = XMLDate.Year.ToString() +
                                "-" +
                                (XMLDate.Month < 10 ? "0" +
                                XMLDate.Month.ToString() : XMLDate.Month.ToString()) +
                                "-" +
                                (XMLDate.Day < 10 ? "0" +
                                XMLDate.Day.ToString() : XMLDate.Day.ToString()) +
                                "T" +
                                (XMLDate.Hour < 10 ? "0" +
                                XMLDate.Hour.ToString() : XMLDate.Hour.ToString()) +
                                ":" +
                                (XMLDate.Minute < 10 ? "0" +
                                XMLDate.Minute.ToString() : XMLDate.Minute.ToString()) +
                                ":" +
                                (XMLDate.Second < 10 ? "0" +
                                XMLDate.Second.ToString() : XMLDate.Second.ToString()) +
                                ".000";
                            excelDoc.Write("<Cell ss:StyleID=/"DateLiteral/">" +
                                "<Data ss:Type=/"DateTime/">");
                            excelDoc.Write(XMLDatetoString);
                            excelDoc.Write("</Data></Cell>");
                            break;
                        case "System.Boolean":
                            excelDoc.Write("<Cell ss:StyleID=/"StringLiteral/">" +
                                "<Data ss:Type=/"String/">");
                            excelDoc.Write(x[y].ToString());
                            excelDoc.Write("</Data></Cell>");
                            break;
                        case "System.Int16":
                        case "System.Int32":
                        case "System.Int64":
                        case "System.Byte":
                            excelDoc.Write("<Cell ss:StyleID=/"Integer/">" +
                                "<Data ss:Type=/"Number/">");
                            excelDoc.Write(x[y].ToString());
                            excelDoc.Write("</Data></Cell>");
                            break;
                        case "System.Decimal":
                        case "System.Double":
                            excelDoc.Write("<Cell ss:StyleID=/"Decimal/">" +
                                "<Data ss:Type=/"Number/">");
                            excelDoc.Write(x[y].ToString());
                            excelDoc.Write("</Data></Cell>");
                            break;
                        case "System.DBNull":
                            excelDoc.Write("<Cell ss:StyleID=/"StringLiteral/">" +
                                "<Data ss:Type=/"String/">");
                            excelDoc.Write("");
                            excelDoc.Write("</Data></Cell>");
                            break;
                        default:
                            throw(new Exception(rowType.ToString() + " not handled."));
                    }
                }
                excelDoc.Write("</Row>");
                this.progressBar1.Value=rowCount;
            }
            excelDoc.Write("</Table>");
            excelDoc.Write(" </Worksheet>");
            excelDoc.Write(endExcelXML);
            excelDoc.Close();
        }

phpexcel导出excel无法打开,提示文件格式或文件名无效,文件损毁,解决办法 使用过很多次phpexcel了,有时需要保存文件到磁盘,有时需要浏览器弹出下载。保存到磁盘一半不会出现问题,关键是浏览器弹出保存,经常会发生导出的excel文件无法打开,提示文件格式或文件名无效,文件损毁。在此,记录一下解决办法。 1、xls还是xlsx?首先确定导出的excel文件扩展名 2、添加header,不同的文件类型,不同的header。 我就是这里出了问题,xlsx用了xls的h... 阅读详情

相关推荐

解决Office2003与2007文件格式兼容性的补丁发布

为了解决Office 2003与Office 2007之间的兼容性问题,Microsoft 提供了一系列兼容包补丁。这些补丁能够允许Office 2003用户在不升级软件版本的情况下,打开和编辑新格式的文件。我们将详细讲解如何安装这些补丁,并确保其功能的有效发挥。.docx是Microsoft Word的默认文件格式,首次出现在Word 2007版本中,与早期的.doc格式相比,.docx提供了一种更加高效、灵活和可扩展的方式来存储文档数据。

weixin_33419305的博客 1435

Excel保存时出现“可能含有与文本文件(制表符分隔)不兼容的功能”

编辑了一个Excel表后点保存提示 ” 某文件”(我设置的文件名) 可能含有与文本文件(制表符分隔)不兼容的功能。是否保持工作簿的这种格式? *如果保持这种格式,去掉所有不兼容的功能,请单击“是” *如果保留这些功能,请单击“否”然后再用最新的Excel格式保存一份副 本。 *如果想知道可能丢失的功能,请单击“帮助”。 解决办法:保存时注意看一下“保存类型”(如果已经保存过的可以选“另存为”)

bashanhu的专栏 2万+

Office 2003与2007文件格式兼容性解决方案

本文还有配套的精品资源,点击获取 简介:为了帮助Office 2003用户能够处理由Office 2007或更高版本创建的新型文档格式(如.docx, .xlsx, .pptx等),微软发布了兼容性补丁。该补丁允许旧版本Office顺利读写新格式文件,从而解决了版本间的兼容性问题。安装补丁涉及使用"FileFormatConverters.exe"执行文件和查阅"Readm...

weixin_42518874的博客 1786

WPS右键新建的文档保存时弹出兼容性警告

后续准备写一个能够自动识别当前版本号的脚本,不再需要进行预设或手动输入,目前已查询到WPS的版本号存储在注册表路径:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Kingsoft Office\DisplayVersion。在WPS界面按F12,查看实际的文件格式是不是txt,如果是的话,很大可能是注册表出现了问题。·如要保持这种格式,去掉所有不兼容的功能,请单击“是”

weixin_45158066的博客 9825

解决Office 2007与Office 2003文件兼容性的软件包

在信息技术快速发展的今天,办公软件的兼容性问题成为了用户的一大痛点。特别是随着Microsoft Office版本的更新,早期版本的Office用户在尝试打开、编辑新版本文件时,往往会遇到格式不兼容、功能缺失等问题。为了解决这一问题,Microsoft公司推出了Office 2007与2003 System兼容包。这款兼容包的推出,使得Office 2003的用户能够无需升级到最新版本,即可打开、编辑和保存Office 2007的文档格式,大大提高了用户的工作效率和协作便利性。

weixin_42581846的博客 1546

Office 2003-2007文件格式兼容包安装与使用指南

回顾这场长达十年的技术接力赛,我们会发现:真正的“兼容性”不是让旧系统勉强跑新格式,而是为企业提供平稳过渡的时间窗口。兼容包的意义,正是给了组织喘息之机——让你有机会评估风险、规划预算、培训员工,而不是在某天突然被告知:“你的软件已停止支持。但窗口不会永远开着。如今,连兼容包本身也早已停止更新,存在潜在安全漏洞。继续依赖它,就像开着一辆没有ABS和气囊的老车在高速上行驶。最好的兼容策略,其实是主动进化。毕竟,文档承载的不仅是信息,更是效率、协作与未来竞争力。🚀。

weixin_35756130的博客 1266

手动构建xml xls 日期 datetime number type

http://ewbi.blogs.com/develops/2005/01/create_excels_s.html ...

a1008223的专栏 322

Java处理加密Excel文件(2003和2007版)的完整源码

在日常工作中,处理Excel文件是一项常见的任务。对于Java开发者来说,由于Java的跨平台特性和丰富的库支持,使用Java来处理Excel文件是一个高效且稳定的选择。无论是从数据导入导出,还是数据自动化处理,Java都能提供强大的支持,帮助我们实现复杂的业务逻辑。在深入了解2007版Excel的加密机制前,需要对Office Open XML格式有所了解。这是一种基于XML的压缩文件格式,相比于老版的xls文件,它能够更好地支持复杂的数据和元数据。文件以.xlsx。

weixin_28235889的博客 1122

Excel 2003的XML文件格式

    表格软件的的层次结构一般都比较简单,整个文件是一个Workbook节点,Workbook中可以包含多个Worksheet,Worksheet有多个Row对象,每个Row包含多个Cell.    Workbook             Worksheet                      Row                           Cell             

dengyunze 3971

Office 2003与2007文档兼容解决方案

尽管兼容包旨在保持Office 2003的运行环境,但用户仍然可以通过某些方式体验到Office 2007的新功能。例如:用户界面(UI)的改进:Office 2007的新界面被设计为更加直观和易于使用,尽管这些改进在Office 2003环境中无法完全体验到,但一些UI元素,比如Ribbon工具栏,可以在安装兼容包后的Word、Excel和PowerPoint中部分体验。文件格式的更新:新的文件格式如.docx.xlsx和.pptx提供了更高的数据恢复能力以及更小的文件体积。

weixin_36288992的博客 1484

Apache POI 3.8:解析Excel 2003和2007

Apache POI是一个功能强大的Java库,使Java程序能够读取和写入Microsoft Office文档格式。作为操作Office文件的事实标准,POI不仅支持读写,还提供了格式化、样式应用、数据操作等功能,让开发者能够灵活地处理各种Office文档,例如Excel、Word等。Apache POI为Office文件操作提供了一组丰富的API。这些API按照功能和使用范围分为不同的包和类,例如HSSF和XSSF分别用于读写Excel的旧版和新版格式。

weixin_29215509的博客 995

运用CodeSmith代码生引擎生成XML报表文件

前段时间做WEB项目时接到一个任务,报表都导出EXCEL。不能用第三方的报表工具,那只能操作EXCEL Library来解决了。  第一种:在服务端调用COM写EXCEL发关到客户端;这样不太可行因为系统的用户数量也很多,C#操作Excel(COM)效率不高,还很消耗服务器资源。  第二种:就是通过JSCRIPT来操作ActiveX,原理和第一种一样;只是操作数据操作放到客户端进行。  这两种方法

daqingshu的专栏 981

Opencv学习-仿射变换与透视变换(几何变换)1

• 一、定义 变换是指对图像进行拉伸、收缩、扭曲和旋转等几何操作。对于平面区域有两种方式的几何转换:一种是基于23矩阵进行的变换,被称为仿射变换;一种是基于33矩阵进行的变换,被称为透视变换。也可被称为平面变换和空间变换。因为仿射变换需要找到3个映射点,三点确定一个平面。而透视变换需要确定四个映射点,四点确定一个三维空间。 • 二、Opencv中的函数定义 由于Opencv中都已封装好函数,变换的...

勉強 583

wps 打开xml格式乱码_“WPS不兼容EXCEL打开后出现乱码怎么解决“xlsx文件打开是乱码怎么办...

我的 EXCEL 工作表打开出现乱码?原因一: excel问题03版本和后面07以后的excel版本文件格有不同,版本低版本和低版本打开高版本有时候都会出现一些乱码问题 不过一般都是低版本打开高版本出问题比较多。解决方法:对excel进行升级。原因二: 宏病毒解决方法:使用office软件查杀工具进行病毒查杀。原因三: excel文件损坏解决方法:单击“打开”按钮右侧的下拉按钮,在弹出的下拉菜单中...

weixin_39755136的博客 4154

GEOS-Chem笔记——模式下载安装+驱动数据+运行流程

看过我博客的会发现我写了很多CESM的笔记,但是说实话,平时科研我其实更多时候是GEOS-Chemuser。之所以写了很多CESM笔记,其实是因为不会,就边学边写。然后GEOS-Chem已经用比较熟了,所以也没想过做笔记啥的。但是我发现越来越多朋友私信我各种CESM问题,我觉得我可能给大家营造了一种我是CESM达人的错觉。感觉自己有点跑偏了呢。公平起见,我觉得我有必要补充点GEOS-Chem笔记。 GEOS-Chem是研究大气化学的人常用的大气化学传输模式,在全世界范围的大气化学研究组中被广泛使用。不过.

砍柴姑娘Jourosy的博客 1万+

防止加入域主机脱离域的控制(管理员权限)

一、简介   当公司所有主机加入到域后,SA首要工作就是防止加入域的主机脱离域的控制。让我发现该工作的必要性是一程序猿,前一天刚配完禁止执行QQ、微信执行,第二天就看到那家伙在用微信聊天,肯定是用回旧的本地账号登陆了。   本人所在公司安装软件的类型繁杂,无管理员权限运行不少软件会报错,不得不授予「域账号」本地管理员权限。过大的权限带也来了一系列后果:用户可随意退出域、创建本地管理员...

der69615的博客 3174

excel 2003 ,wps office 2007,excel 2007 xls xlsx文件操作效率比较

 首先这几个软件都很不错,且不谈。这是我在有限的时间内对软件局部功能测试,仅是管中窥豹。打开excel 2003格式文件 3sheet ,15万行,biff8x格式  文件大小22,737,920字节excel 2003 中打开并显示出结果 2-3秒excel 2007 中打开并显示出结果 2-3秒wps office 2007 中打开并显示出结果 8秒还有一个表现更差的程序(

fckadxz的专栏 4624

Latex参考文献中大写字母编译后自动变成了小写,如何保持原字母大写形式

bib文件参考文献中大写自动变为小写,如何保持原大写问题。Latex: 保持参考文献大小写,overleaf文献编译后,原大写字母自动变成了小写字母,如何保持原字母大写

我的个人博客 5805

EXCEL97版本(.xls)和EXCEL2007之后的版本(.xlsx)对比

一、如何区别是97-2003版本的EXCEl还是2007之后版本的EXCEL       主要查看文件后缀格式就可以确定是哪个版本的:       如果后缀为:.xls   则这个Excel版本是97-2003版的       如果后缀为:.xlsx 则这个Excel版本是2007之后版的      还有另一种Excel常见的后缀为:.xlsm 这种文件是带宏的文件,使用 ALT

luzhanheng2012的博客 1万+

电子技术——共栅和共源共栅放大器的高频响应

我们在之前学过无论是是CS放大器还是CE放大器,都可以看做是一个带通(IC低通)滤波器。在高频处的响应收到输入电容 $C_{in}$ 的限制(主要是米勒效应)。因此,若想扩大放大器的带宽,我们必须减小米勒效应,一种方案就是共栅放大器。

jiahonghao2002的博客 4183

Hand-Eye 标定误差分析:从理论到 C++ 实现

本文深入探讨了机器人手眼标定中的核心环节——误差分析。文章从AX=XB方程的理论残差出发,详细解析了旋转与平移误差的数学定义与物理意义,并提供了一个工业级的C++实现代码,用于计算重投影误差。通过误差分析,工程师可以量化标定精度,诊断问题根源,从而确保视觉引导机器人系统在实际应用中的可靠性与精确性。

c7d8e的博客 695

Poi-读取Excel2003/Excel2007及兼容性问题

void toInExcel(@RequestParam("file") MultipartFile file) throws Exception{ //String filepath = "D:/cData07.xlsx"; //InputStream is = new FileInputStream(filepath); InputStream i

our_times的博客 3096

C/C++基础讲解(四十三)之图形篇之绘制直线、圆、圆弧、 椭圆

程序主要是基于Visual studio 2019进行编译完成了,有兴趣的小伙伴可以自己安装下Visual studio 2019,网上有现成的教程,当然了,如果有问题,也可以和我联系,这里我们主要讲解些源码实例,不多说了,言归正传。 C语言,做为学习其他语言的基础语言,其重要性就不言而喻了.下面我将和大家一起来学习探讨C语言的相关奥秘。 实例1:绘制直线 实例2:绘制圆 实例2:绘制圆弧 实例2:绘制椭圆

hnjzfwy的博客 1235

SpringBoot下载Excel文件,在Wps上可以打开但是Office上的excel打不开的问题

1.前端如果用xlsx格式接收表格 后台用XSSFWorkbook workbook = new XSSFWorkbook();创建工作薄 response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.addHeader("Content-Disposition", "attachment;filename=fileName" + ".xlsx"); .

Ark方舟 3574

腾讯Android开发面试准备指南及参考答案

腾讯元宝高级Android开发职位面试准备指南 该职位要求扎实的Kotlin基础、架构设计能力和性能优化经验,重点关注Android客户端开发。面试流程约3轮,支持线上面试,流程较快。候选人需准备以下核心内容: 基础技术:Kotlin特性、Android开发生命周期、多线程编程 架构设计:MVVM/MVI模式应用、组件化解耦方案 性能优化:流畅度提升、内存管理、启动时间优化等实战案例 加分技能:Jetpack Compose开发、音视频处理、跨平台开发经验 建议结合项目经验准备具体案例,突出技术深度和问题解

郑伟强dev的专栏 1194

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java读取excel2003_java读取Excel2003和Excel2007内容

java读取Excel2003和Excel2007内容并可以控制是否读取全部sheet页内容在http://download.youkuaiyun.com/detail/u010792467/8072015下载所需要的包如果需要excel2003和excel2007文件可以去http://download.youkuaiyun.com/detail/u010792467/8072009下载package Excel;im...

weixin_36444911的博客 260

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: .net 开源学习 转载
下一篇: ExportData类转载
andycode
博客等级 码龄17年 12粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值