2011-07-28 12 views
0

私は開発中のアプリケーションソフトウェアとExcelファイルをリンクする必要があります。Excelファイルには調査を実施するためのアンケートが含まれます。ファイルを選択するためにJpanelを開きます。ファイルを選択した後、何も起こっていません。Excelファイル内の質問に基づいてテンプレートを生成できるようにしたいのです(Excelファイルから質問を抽出し、後でウェブ上にアップロードする必要があります。これで私を助けてください。Javaスイングを使用してExcelファイルとアプリケーションソフトウェアをリンクする方法

import java.io.*; 
import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 
import javax.swing.filechooser.*; 


public class SelectFile extends JFrame{ 


    public static void main(String[]args){ 
        JFrame frame = new JFrame(); 
        frame.setLayout(null); 

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        frame.setTitle("Select File for Linking"); 
        frame.setSize(400, 100); 
        Container container = frame.getContentPane(); 
        container.setLayout(new GridBagLayout()); 

        final JTextField text=new JTextField(20); 

        JButton b=new JButton("Select File"); 
        text.setBounds(20,20,120,20); 
        b.setBounds(150,20,80,20); 

        // b.setText("<html><font color='blue'><u>Select File</u></font></html>"); 
        b.setHorizontalAlignment(SwingConstants.LEFT); 
        //b.setBorderPainted(false); 
        //b.setOpaque(false); 
        // b.setBackground(Color.lightGray); 
        b.addActionListener(new ActionListener() { 
         public void actionPerformed(ActionEvent e){ 
           JFileChooser fc = new JFileChooser(); 
           fc.addChoosableFileFilter(new OnlyExt()); 

           int returnval = fc.showOpenDialog(null); 
           if (returnval == JFileChooser.APPROVE_OPTION) { 
           File file = fc.getSelectedFile(); 
           text.setText(file.getPath()); 
           } 
          } 
        }); 
        container.add(text); 
        container.add(b); 
        frame.setVisible(true); 
      } 
    } 
     class OnlyExt extends javax.swing.filechooser.FileFilter{ 
      public boolean accept(File file) { 
     if (file.isDirectory()) return false; 
     String name = file.getName().toLowerCase(); 
     return (name.endsWith(".xls")); 
     } 
     public String getDescription() { return "Excel (*.xls)"; } 
     } 
+2

もちろん、nothignが起きていますが、あなたはファイル名だけを選択しますが、ファイルに何もしないことにします。あなたの質問は、とにかく完全にはっきりしていません。あなたのアプリケーションにExcelファイルをリンクするとどういう意味ですか? Excelを起動してファイルを開かせますか?あなたはファイルに何かをするためにExcelと話したいですか? –

+0

@Angel O'Sphere +1良い質問。私はいくつかの結論に飛びつく用意ができましたが、私はまだ答えを聞くことに興味があります。 –

+0

「Excelファイルをリンクする」とは、Excelファイルにアンケートのアンケートが含まれることを意味します。私が開発しているソフトウェアを使用してこれらのアンケートを読んで、データベースに保存しなければなりません。これらの質問は、データベースから、このテンプレートをweb上にアップロードする必要があります。私はソフトウェアのこれらの部分を読んだり、データベースに保存したり、テンプレートを作成することができません。 – Abhinav

答えて

1

いくつかのヒントについては、この情報源を参照してください。

import java.io.File; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.filechooser.FileNameExtensionFilter; 
import javax.swing.border.EmptyBorder; 

public class SelectFile { 

    public static void main(String[]args) { 

     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       JFrame frame = new JFrame("Select File for Linking"); 
       // don't use null layouts. 
       //frame.setLayout(null); 

       // create a panel so we can add a border 
       JPanel container = new JPanel(new FlowLayout(3)); 
       container.setBorder(new EmptyBorder(10,10,10,10)); 
       frame.setContentPane(container); 

       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       // instead call pack() after components are added 
       //frame.setSize(400, 100); 

       final JTextField text=new JTextField(20); 

       JButton b=new JButton("Select File"); 

       // irrelevant unless button stretched by layout 
       //b.setHorizontalAlignment(SwingConstants.LEFT); 
       b.addActionListener(new ActionListener() { 
        public void actionPerformed(ActionEvent e) { 
         JFileChooser fc = new JFileChooser(); 
         String desc = "Excel (*.xls)"; 
         String[] types = {".xls"}; 
         fc.addChoosableFileFilter(
          new FileNameExtensionFilter(desc, types)); 

         int returnval = fc.showOpenDialog(null); 
         if (returnval == JFileChooser.APPROVE_OPTION) { 
          File file = fc.getSelectedFile(); 
          text.setText(file.getPath()); 
          try { 
           // 1.6+ 
           Desktop.getDesktop().edit(file); 
          } catch(Exception ex) { 
           ex.printStackTrace(); 
          } 
         } 
        } 
       }); 
       container.add(text); 
       container.add(b); 

       frame.pack(); 
       frame.setVisible(true); 
      } 
     }); 
    } 
} 

ところで - ここJFrameはおそらくJDialogまたはJOptionPaneに良く変換されます。

+0

私は信じません。まだ存在する+1 – mKorbel

関連する問題