using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.IO;
//**********************************************
//程式设计:殷庆飞
//设计时间:2007-8-10
//功能描述:读取Excel中的内容,并写入txt文件中
//修改人:
//修改描述:
//修改时间:
//修改描述:
//***********************************************
namespace 文件格式转换
{
public partial class Form1 : Form
{
OleDbConnection cn;
DataSet MyDataSet;
public Form1()
{
InitializeComponent();
}
//浏览按钮,选择要读取的EXCEL文件
private void btnFind_Click(object sender, EventArgs e)
{
txtName.Text = "";
OpenFileDialog openFile = new OpenFileDialog();
openFile.Filter = "Excel files (*.xls)|*.xls|All files (*.*)|*.*";
openFile.ShowDialog();
if (txtName.Text == string.Empty) txtName.Text = openFile.FileName;
}
//转换按钮,将Excel中的内容转换到文本文件中
private void btnConvert_Click(object sender, EventArgs e)
{
try
{
if (txtName.Text == string.Empty || txtConName.Text == string.Empty)//判断是否选择了要读到的Excel,是否输入了转换后的txt文件名称
{
MessageBox.Show("注意:选择要转换的Excel,并输入转换后的文本文件名称", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
cn = GetExcelConnection(txtName.Text.Trim(), false, 1);
if (cn != null)
{
cn.Open();
MyDataSet = ExecuteDataSet(cn);
if (MyDataSet != null)
{
string strPath = Application.StartupPath + @"\" + txtConName.Text.Trim() + ".txt";
if (File.Exists(strPath))
{
if (MessageBox.Show("文件:" + txtConName.Text + "已经存在!是否要删除?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
{
File.Delete(strPath);
}
else
{
MessageBox.Show("请输入其它的名称", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
txtConName.Focus();
return;
}
}
FileStream fs = new FileStream(strPath, FileMode.CreateNew, FileAccess.Write, FileShare.Read);
StreamWriter sw = new StreamWriter(fs);
string strContent = "";
for (int i = 0; i < MyDataSet.Tables.Count; i++)//Excel中sheet的个数
{
for (int row = 0; row < MyDataSet.Tables[i].Rows.Count; row++)
{
strContent = "";
for (int col = 0; col < MyDataSet.Tables[i].Columns.Count; col++)//sheet中列的个数
{
if (col == 1)
{
strContent += MyDataSet.Tables[i].Rows[row][col].ToString() + " ";
}
else
{
strContent += MyDataSet.Tables[i].Rows[row][col].ToString();
}
}
sw.WriteLine(strContent);
}
}
sw.Close();//关闭文件
MessageBox.Show("转换成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
else
{
MessageBox.Show("连接Excel发生错误", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
catch (Exception ex)
{
string strError = string.Format("错误:{0}", ex.Message);
MessageBox.Show(strError, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
//退出
private void btnExit_Click(object sender, EventArgs e)
{
Application.Exit();
}
/**//// <summary>
/// 获取 Excel 连接对象。
/// </summary>
/// <param name="strFullPath">文件的完全路径</param>
/// <param name="isTreatedHeader">是否处理表头</param>
/// <param name="intIMEXMode">输入输出模式。1:设置输入为文本 Text 类型,通常使用该值。0/2:设置输入为 多数 Majority 类型,此设置极易导致数据缺失发生。</param>
/// <returns>Excel 连接对象</returns>
public static OleDbConnection GetExcelConnection( string strFullPath, bool isTreatedHeader, int intIMEXMode )
{
try
{
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1};IMEX={2};'";
string strTreatedHeader = string.Empty;
if (isTreatedHeader) strTreatedHeader = "Yes";
else strTreatedHeader = "No";
connectionString = string.Format(connectionString, strFullPath, strTreatedHeader, intIMEXMode);
return new OleDbConnection(connectionString);
}
catch (Exception ex)
{
string strError = string.Format("错误:{0}", ex.Message);
MessageBox.Show(strError, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return null;
}
}
/**//// <summary>
/// 读取给定连接中全部或给定表的内容至 DataSet。
/// </summary>
/// <param name="cn">给定连接</param>
/// <param name="sheetNames">[可选参数]指定表名 的 sheet</param>
/// <returns>包含全部或给定 Sheet 数据的 DataSet</returns>
public static DataSet ExecuteDataSet( OleDbConnection cn, params string[] sheetNames )
{
try
{
DataSet ds = new DataSet();
DataTable schemaTable = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
string queryString;
// 带 $ 的表名
string fullTableName;
// 不带 $ 的表名
string realTableName;
OleDbDataAdapter odda = new OleDbDataAdapter();
foreach (DataRow dr in schemaTable.Rows)
{
fullTableName = dr["TABLE_NAME"].ToString();
realTableName = fullTableName.Remove(fullTableName.Length - 1, 1);
// 根据给定表导入
if (sheetNames.Length > 0)
{
// 若当前表不在给定表数组中,则不填充到数据集中。
if (Array.IndexOf(sheetNames, realTableName) < 0)
{
continue;
}
}
queryString = string.Format("SELECT * FROM [{0}]", fullTableName);
odda.SelectCommand = new OleDbCommand(queryString, cn);
odda.Fill(ds, realTableName);
}
return ds;
}
catch (Exception ex)
{
string strError = string.Format("错误:{0}", ex.Message);
MessageBox.Show(strError, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return null;
}
}
//打开关于框
private void btnAbout_Click(object sender, EventArgs e)
{
frmAbout frm = new frmAbout();
frm.ShowDialog();
}
}
}
可到这里去下载http://download.csdn.net/source/225379
分享到:
相关推荐
在Python编程中,有时我们需要处理大量...以上就是关于Python3如何循环读取Excel文件并写入JSON的操作,以及如何处理MySQL数据库中的时间参数和Excel文件的写入技巧。这些技能在数据处理和自动化任务中是至关重要的。
标题 "读取excel不同sheet内容并写入到txt文件中.zip" 暗示了这个压缩包包含一个Python脚本或教程,用于演示如何从Excel文件的不同工作表(sheet)中读取数据,并将这些数据写入TXT文本文件。Python中的`pandas`库...
在这个"NPOI批量读取excel文件内容写入excel模板.rar"压缩包中,包含的资源可以帮助我们理解如何利用NPOI来批量处理Excel数据,并将读取到的信息填入预设的Excel模板中。这里我们将详细探讨NPOI的使用方法、批量读取...
标题中的“利用vb读取ini文件,并写入excel”指的是使用Visual Basic (VB)编程语言来操作两种常见的数据存储格式:INI文件和Excel电子表格。INI文件是一种简单的文本配置文件,通常用于存储程序的设置和参数,而...
本篇文章将详细讲解如何使用C#读取Excel文件中的内容,并根据特定格式将其写入新的Excel文件。 首先,我们需要引入一个库来帮助我们操作Excel。最常用的是Microsoft Office Interop库,但这个库需要Office环境支持...
要读取Excel文件,可以使用`pandas`的`read_excel()`函数。例如: ```python import pandas as pd # 读取Excel文件 df = pd.read_excel('文件路径.xlsx') # 查看数据 print(df) ``` 这将把Excel文件加载为一个...
本文实例讲述了Python实现读取txt文件并转换为excel的方法。分享给大家供大家参考,具体如下: 这里的txt文件内容格式为: 892天平天国定都在?A开封B南京C北京(B) Python代码如下: # coding=utf-8 ''''' main...
3. **读取Excel文件**: - 打开文件:使用`XSSFWorkbook`的静态方法`openInputStream`打开一个Excel文件。 - 获取工作表:根据索引或名称获取工作表。 - 遍历行和单元格:通过工作表的`getRow`方法获取行,再通过...
综上所述,"C# 读取XML文件并写入Excel表格"这一主题涵盖了XML解析和Excel操作的关键技术,对于数据处理和报告生成等场景非常实用。在实际应用中,开发者可以根据具体需求调整代码逻辑,以满足各种复杂的业务需求。
这个例子中,我们要讨论的是如何使用C#编程语言,结合Aspose库,来读取一个目录中的多个XML文件并将其中的数据写入Excel工作簿。这个过程可以分为几个关键步骤,我们将详细探讨这些步骤以及涉及的技术知识点。 首先...
在.pro文件中设定库类型,然后在对应的源文件中实现上述读取Excel的函数。编译完成后,动态库文件(.dll)可以在其他项目中作为依赖引用。 7. **跨平台考虑**: 虽然这里使用的QAxContainer是Windows特有的,但Qt...
C# 编写的操作Excel读取/写入动态库(COM/NPOI两种方式),个人推荐使用NPOI方式,因为COM方式存在无法关闭Excel进程的情况(个人体验COM方式效率有点低)。。。已设置0分,资源自取。
这个项目实现的功能是读取excel文件中的数据,解析并写入数据库。 读取的excel文件位于项目目录下的 excel\0805.xlsx 使用IntelliJ IDEA开发此项目 使用MYSQL查看数据库 在MYSQL中运行项目db目录下的sql文件,创建...
在本场景中,我们将探讨如何在Winform应用中读取Excel文件,包括表名和内容。这里使用的开发工具是Visual Studio 2010,它支持.NET Framework 4.0,这使得我们可以利用Microsoft Office Interop库来操作Excel文件。 ...
在VB6(Visual Basic 6)中,读取Excel文件是一...结合这两个部分,你可以在VB6中读取Excel文件,并将数据写入SQL数据库,或者从SQL数据库中读取数据并显示在Excel中。这些基本操作可以作为更复杂数据处理任务的基础。
总结来说,要从PDF中读取Excel表格并写入新的Excel文件,我们需要理解不同文件格式的特性,选择合适的工具,以及编写或使用已有的代码示例。虽然这个过程可能涉及一些技术挑战,但通过学习和实践,我们可以高效地...
在本例中,我们将使用 AutoLISP 读取 Excel 文件的内容,并将其返回为一个 Lisp 列表。首先,我们需要加载 COM 组件,使用 vl-load-com 函数加载 COM 组件。然后,我们使用 vlax-get-or-create-object 函数创建一个 ...
用sql server读取和写入excel文件,读取和写入数据非常方便,大批量数据导入与导出非常快
批量读取同一文件夹下所有excel指定单元格内容并写入新单元格