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();
}
相关推荐
解决Office2003与2007文件格式兼容性的补丁发布
为了解决Office 2003与Office 2007之间的兼容性问题,Microsoft 提供了一系列兼容包补丁。这些补丁能够允许Office 2003用户在不升级软件版本的情况下,打开和编辑新格式的文件。我们将详细讲解如何安装这些补丁,并确保其功能的有效发挥。.docx是Microsoft Word的默认文件格式,首次出现在Word 2007版本中,与早期的.doc格式相比,.docx提供了一种更加高效、灵活和可扩展的方式来存储文档数据。
Excel保存时出现“可能含有与文本文件(制表符分隔)不兼容的功能”
编辑了一个Excel表后点保存提示 ” 某文件”(我设置的文件名) 可能含有与文本文件(制表符分隔)不兼容的功能。是否保持工作簿的这种格式? *如果保持这种格式,去掉所有不兼容的功能,请单击“是” *如果保留这些功能,请单击“否”然后再用最新的Excel格式保存一份副 本。 *如果想知道可能丢失的功能,请单击“帮助”。 解决办法:保存时注意看一下“保存类型”(如果已经保存过的可以选“另存为”)
Office 2003与2007文件格式兼容性解决方案
本文还有配套的精品资源,点击获取 简介:为了帮助Office 2003用户能够处理由Office 2007或更高版本创建的新型文档格式(如.docx, .xlsx, .pptx等),微软发布了兼容性补丁。该补丁允许旧版本Office顺利读写新格式文件,从而解决了版本间的兼容性问题。安装补丁涉及使用"FileFormatConverters.exe"执行文件和查阅"Readm...
WPS右键新建的文档保存时弹出兼容性警告
后续准备写一个能够自动识别当前版本号的脚本,不再需要进行预设或手动输入,目前已查询到WPS的版本号存储在注册表路径:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Kingsoft Office\DisplayVersion。在WPS界面按F12,查看实际的文件格式是不是txt,如果是的话,很大可能是注册表出现了问题。·如要保持这种格式,去掉所有不兼容的功能,请单击“是”
解决Office 2007与Office 2003文件兼容性的软件包
在信息技术快速发展的今天,办公软件的兼容性问题成为了用户的一大痛点。特别是随着Microsoft Office版本的更新,早期版本的Office用户在尝试打开、编辑新版本文件时,往往会遇到格式不兼容、功能缺失等问题。为了解决这一问题,Microsoft公司推出了Office 2007与2003 System兼容包。这款兼容包的推出,使得Office 2003的用户能够无需升级到最新版本,即可打开、编辑和保存Office 2007的文档格式,大大提高了用户的工作效率和协作便利性。
Office 2003-2007文件格式兼容包安装与使用指南
回顾这场长达十年的技术接力赛,我们会发现:真正的“兼容性”不是让旧系统勉强跑新格式,而是为企业提供平稳过渡的时间窗口。兼容包的意义,正是给了组织喘息之机——让你有机会评估风险、规划预算、培训员工,而不是在某天突然被告知:“你的软件已停止支持。但窗口不会永远开着。如今,连兼容包本身也早已停止更新,存在潜在安全漏洞。继续依赖它,就像开着一辆没有ABS和气囊的老车在高速上行驶。最好的兼容策略,其实是主动进化。毕竟,文档承载的不仅是信息,更是效率、协作与未来竞争力。🚀。
手动构建xml xls 日期 datetime number type
http://ewbi.blogs.com/develops/2005/01/create_excels_s.html ...
Java处理加密Excel文件(2003和2007版)的完整源码
在日常工作中,处理Excel文件是一项常见的任务。对于Java开发者来说,由于Java的跨平台特性和丰富的库支持,使用Java来处理Excel文件是一个高效且稳定的选择。无论是从数据导入导出,还是数据自动化处理,Java都能提供强大的支持,帮助我们实现复杂的业务逻辑。在深入了解2007版Excel的加密机制前,需要对Office Open XML格式有所了解。这是一种基于XML的压缩文件格式,相比于老版的xls文件,它能够更好地支持复杂的数据和元数据。文件以.xlsx。
Excel 2003的XML文件格式
表格软件的的层次结构一般都比较简单,整个文件是一个Workbook节点,Workbook中可以包含多个Worksheet,Worksheet有多个Row对象,每个Row包含多个Cell. Workbook Worksheet Row Cell
Office 2003与2007文档兼容解决方案
尽管兼容包旨在保持Office 2003的运行环境,但用户仍然可以通过某些方式体验到Office 2007的新功能。例如:用户界面(UI)的改进:Office 2007的新界面被设计为更加直观和易于使用,尽管这些改进在Office 2003环境中无法完全体验到,但一些UI元素,比如Ribbon工具栏,可以在安装兼容包后的Word、Excel和PowerPoint中部分体验。文件格式的更新:新的文件格式如.docx.xlsx和.pptx提供了更高的数据恢复能力以及更小的文件体积。
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的旧版和新版格式。
运用CodeSmith代码生引擎生成XML报表文件
前段时间做WEB项目时接到一个任务,报表都导出EXCEL。不能用第三方的报表工具,那只能操作EXCEL Library来解决了。 第一种:在服务端调用COM写EXCEL发关到客户端;这样不太可行因为系统的用户数量也很多,C#操作Excel(COM)效率不高,还很消耗服务器资源。 第二种:就是通过JSCRIPT来操作ActiveX,原理和第一种一样;只是操作数据操作放到客户端进行。 这两种方法
Opencv学习-仿射变换与透视变换(几何变换)1
• 一、定义 变换是指对图像进行拉伸、收缩、扭曲和旋转等几何操作。对于平面区域有两种方式的几何转换:一种是基于23矩阵进行的变换,被称为仿射变换;一种是基于33矩阵进行的变换,被称为透视变换。也可被称为平面变换和空间变换。因为仿射变换需要找到3个映射点,三点确定一个平面。而透视变换需要确定四个映射点,四点确定一个三维空间。 • 二、Opencv中的函数定义 由于Opencv中都已封装好函数,变换的...
wps 打开xml格式乱码_“WPS不兼容EXCEL打开后出现乱码怎么解决“xlsx文件打开是乱码怎么办...
我的 EXCEL 工作表打开出现乱码?原因一: excel问题03版本和后面07以后的excel版本文件格有不同,版本低版本和低版本打开高版本有时候都会出现一些乱码问题 不过一般都是低版本打开高版本出问题比较多。解决方法:对excel进行升级。原因二: 宏病毒解决方法:使用office软件查杀工具进行病毒查杀。原因三: excel文件损坏解决方法:单击“打开”按钮右侧的下拉按钮,在弹出的下拉菜单中...
GEOS-Chem笔记——模式下载安装+驱动数据+运行流程
看过我博客的会发现我写了很多CESM的笔记,但是说实话,平时科研我其实更多时候是GEOS-Chemuser。之所以写了很多CESM笔记,其实是因为不会,就边学边写。然后GEOS-Chem已经用比较熟了,所以也没想过做笔记啥的。但是我发现越来越多朋友私信我各种CESM问题,我觉得我可能给大家营造了一种我是CESM达人的错觉。感觉自己有点跑偏了呢。公平起见,我觉得我有必要补充点GEOS-Chem笔记。 GEOS-Chem是研究大气化学的人常用的大气化学传输模式,在全世界范围的大气化学研究组中被广泛使用。不过.
防止加入域主机脱离域的控制(管理员权限)
一、简介 当公司所有主机加入到域后,SA首要工作就是防止加入域的主机脱离域的控制。让我发现该工作的必要性是一程序猿,前一天刚配完禁止执行QQ、微信执行,第二天就看到那家伙在用微信聊天,肯定是用回旧的本地账号登陆了。 本人所在公司安装软件的类型繁杂,无管理员权限运行不少软件会报错,不得不授予「域账号」本地管理员权限。过大的权限带也来了一系列后果:用户可随意退出域、创建本地管理员...
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秒还有一个表现更差的程序(
Latex参考文献中大写字母编译后自动变成了小写,如何保持原字母大写形式
bib文件参考文献中大写自动变为小写,如何保持原大写问题。Latex: 保持参考文献大小写,overleaf文献编译后,原大写字母自动变成了小写字母,如何保持原字母大写
EXCEL97版本(.xls)和EXCEL2007之后的版本(.xlsx)对比
一、如何区别是97-2003版本的EXCEl还是2007之后版本的EXCEL 主要查看文件后缀格式就可以确定是哪个版本的: 如果后缀为:.xls 则这个Excel版本是97-2003版的 如果后缀为:.xlsx 则这个Excel版本是2007之后版的 还有另一种Excel常见的后缀为:.xlsm 这种文件是带宏的文件,使用 ALT
电子技术——共栅和共源共栅放大器的高频响应
我们在之前学过无论是是CS放大器还是CE放大器,都可以看做是一个带通(IC低通)滤波器。在高频处的响应收到输入电容 $C_{in}$ 的限制(主要是米勒效应)。因此,若想扩大放大器的带宽,我们必须减小米勒效应,一种方案就是共栅放大器。
Hand-Eye 标定误差分析:从理论到 C++ 实现
本文深入探讨了机器人手眼标定中的核心环节——误差分析。文章从AX=XB方程的理论残差出发,详细解析了旋转与平移误差的数学定义与物理意义,并提供了一个工业级的C++实现代码,用于计算重投影误差。通过误差分析,工程师可以量化标定精度,诊断问题根源,从而确保视觉引导机器人系统在实际应用中的可靠性与精确性。
Poi-读取Excel2003/Excel2007及兼容性问题
void toInExcel(@RequestParam("file") MultipartFile file) throws Exception{ //String filepath = "D:/cData07.xlsx"; //InputStream is = new FileInputStream(filepath); InputStream i
C/C++基础讲解(四十三)之图形篇之绘制直线、圆、圆弧、 椭圆
程序主要是基于Visual studio 2019进行编译完成了,有兴趣的小伙伴可以自己安装下Visual studio 2019,网上有现成的教程,当然了,如果有问题,也可以和我联系,这里我们主要讲解些源码实例,不多说了,言归正传。 C语言,做为学习其他语言的基础语言,其重要性就不言而喻了.下面我将和大家一起来学习探讨C语言的相关奥秘。 实例1:绘制直线 实例2:绘制圆 实例2:绘制圆弧 实例2:绘制椭圆
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"); .
腾讯Android开发面试准备指南及参考答案
腾讯元宝高级Android开发职位面试准备指南 该职位要求扎实的Kotlin基础、架构设计能力和性能优化经验,重点关注Android客户端开发。面试流程约3轮,支持线上面试,流程较快。候选人需准备以下核心内容: 基础技术:Kotlin特性、Android开发生命周期、多线程编程 架构设计:MVVM/MVI模式应用、组件化解耦方案 性能优化:流畅度提升、内存管理、启动时间优化等实战案例 加分技能:Jetpack Compose开发、音视频处理、跨平台开发经验 建议结合项目经验准备具体案例,突出技术深度和问题解
汉书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...
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
1435



被折叠的 条评论
为什么被折叠?



