读入xls文件以及app中的当前csv文件

时间:2011-03-22 13:28:34

标签: c# web-services csv xls

我有以下代码 -

private void button1_Click(object sender, EventArgs e)
    {
        string csv = File.ReadAllText("FilePath");

        WebService.function res = new WebService.function();

        XDocument doc = ConvertCsvToXML(csv, new[] { "," });

我想知道如何调整代码以便它不仅可以读取.csv文件而且还可以读取.xls文件?

我创建了一个公共XDocument来执行此操作 -

public  XDocument ConvertCsvToXML(string csvString, string[] separatorField)
    {
        var sep = new[] { "\n" };
        string[] rows = csvString.Split(sep, StringSplitOptions.RemoveEmptyEntries);

        var xsurvey = new XDocument(
        new XDeclaration("1.0", "UTF-8", "yes"));
        var xroot = new XElement("details"); 

2 个答案:

答案 0 :(得分:2)

如果我正确理解您的问题,您希望以与解析csv文件相同的方式将excel文件解析为文本。虽然这是可行的,但您应该考虑使用 Office Interop 接口来执行此操作。如果要解析原始文件,则需要考虑Office版本与大量编码/序列化任务之间的不同格式;不小的任务。

以下是一些可以帮助您入门的资源:

  1. Reading Excel from C#
  2. How to Automate Excel from C#

答案 1 :(得分:1)

我不确定你的问题...但如果你问如何在c#中读取excel文件,这将有效:

string fileName = [insert path and name];
string connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;data source={0}; Extended Properties=Excel 8.0;", fileName);   // Create the data adapter pointing to the spreadsheet 
var oa = new OleDbDataAdapter("SELECT * FROM [xxx$]", connectionString); // xxx is tab name
// Create a blank data set 
var ds = new DataSet();    // Fill the data set using the adapter 
oa.Fill(ds, "table1");    // Create a data table from the data set 
DataTable dt1 = ds.Tables["table1"];
foreach (DataRow dr in dt1.Rows)
{
   ...
}
相关问题